题目要求:判断一个字符串是否为另外一个字符串旋转之后的字符串。
例如: 给定s1 = ABCD和s2 = BCDA,如果s1=s2,返回1,不等于则返回0.(长度和字母相同)
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int Is_left_rev(char *arr,char *p)
{
char *ret = NULL;
int len1 = strlen(arr);//判断两个字符串长度是否相等
int len2 = strlen(p);
if (len1 != len2)
return 0;
else
return 1;
strncat(arr, arr, len1);
//向源字符串拷贝自己,这样包含了所有旋转后的结果;
//strcat不能自己给自己追加字符串,
//strncat多了一个参数为追加的额长度
ret = strstr(arr, p);//判断是否是源字符串的子字符串
}
int main()
{
char arr[20] = "abcdef";
char *p = "cdefab";
int ret = Is_left_rev(arr, p);
if (ret == 0)
printf("No\n");
else
printf("Yes\n");
system("pause");
return 0;
}