//判断字符串2 是不是由字符串1 左旋产生的
//strcat strcat strstr
#include<stdio.h>
#include<string.h>
void left_move(char* str,int k)
{
int i = 0;
int len = strlen(str);
for (i = 0; i < k; i++)
{
char t = *str;
int j = 0;
for (j = 0; j < len-1; j++)
{
*(str+j) = *(str +j+ 1);
}
str[len-1] = t;
}
}
int is_left_move(char* str1, char* str2)
{
/*int i = 0;法1
int len = strlen(str1);
for (i = 0; i < len - 1; i++)
{
if (strcmp(str1, str2) == 0)
{
return 1;
}
left_move(str1,1);
}
return 0;*/
int len = strlen(str1);
int len2 = strlen(str2);
if(len != len2)
{
return 0; //若是两个字符串的长度不相等则不会出现题目情况
}
strncat(str1, str1,len);//在字符串str1后再加一个字符串str1变为abcdefabcdef
//strcat(str1,str1) 自己给自己追加,会找不到'\0'会崩溃,所以用strncat
//strstr-找子串的
char* ret = strstr(str1, str2);
if (ret == NULL)
{
return 0;
}
else
{
return 1;
}
}
int main()
{
char arr1[30] = "abcdef";
char arr2[] = "defabc";
int ret = is_left_move(arr1, arr2);
if (ret == 1)
{
printf("YES!\n");
}
else
{
printf("NO!\n");
}
return 0;
}