int findLeftMove(char *str, char *substr)
{
int strLen = strlen(str);
int subStrLen = strlen(substr);
if (strLen != subStrLen)
{
return -1;
}
int newSize = 2 * strLen + 1;
char *mem = (char*)malloc(sizeof(char)*newSize);
strcopy(mem, str);//拷贝字符串
strcat(mem, str);//拼接字符串
if (strstr(mem, substr))
{
return 1;
}
free(mem);
return -1;
}
int main()
{
char str[20];
char substr[20];
int ret = 0;
printf("请输入初始字符串:\n");
scanf("%s", str);
printf("请输入要查找的左旋后的字符串:\n");
scanf("%s", substr);
ret = findLeftMove(str, substr);
if (ret == 1)
{
printf("找到了\n");
}
else if (ret == -1)
{
printf("没有找到\n");
}
return 0;
}
判断一个字符串是否为另外一个字符串旋转之后的字符串。 例如:给定s1 = AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0.
最新推荐文章于 2019-08-23 16:05:34 发布