How to check if strings are rotations of each other in C

1 Answer

0 votes
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int rotation(char *str1, char *str2) {
    int size1 = strlen(str1);
    int size2 = strlen(str2);

    if (size1 != size2)
        return 0;
 
    char *tmp  = (char *)malloc(sizeof(char) * (size1 * 2 + 1));
    tmp[0] = '\0';
    strcat(strcat(tmp, str1), str1);
    puts(tmp);

    char *p = strstr(tmp, str2);
 
    free(tmp); 
 
    if (p != NULL)
        return 1;
    else
        return 0;
}
 
int main()
{
    char *str1 = "abcxd", *str2 = "cxdab";
 
    if (rotation(str1, str2))
       puts("yes");
    else
       puts("no");
 
    return 0;
}



/*
run:
  
abcxdabcxd
yes

*/

 



answered Dec 23, 2021 by avibootz

Related questions

1 answer 175 views
1 answer 176 views
1 answer 124 views
1 answer 191 views
1 answer 97 views
...