//************************************************************************************//
判断一个字符串是否为另一个字符串旋转前的字符串
//************************************************************************************//
思路:叠加判断
对原始字符串str1进行扩展,str1 = str1 + str1;
此时str1包含了所有旋转结果;
再将部分str1与str2进行判断;
#include<stdio.h>
#include<string.h>
int main()
{
char str1[20] = "abcdef";
char str2[20] = "efabcd";
//1、扩展源字符串;
int len1 = strlen(str1);
int len2 = strlen(str2);
//strcat(str3, str1); // string.h中包含的函数: char *strcat( char *strDestination, const char *strSource );
strncat(str1,str1,len1); // strcat不能自己加自己,strncat可以。 char *strncat(char *strDest, const char *strSource, size_t count);
//2、判断
//strstr -- 找子串的函数 //找到了返回字符串地址,找不到就返回空指针;
int* find = strstr(str1, str2);
if (find != NULL && len1 == len2)
{
printf("YES\n");
}
else
printf("NO\n");
return 0;
}
判断一个字符串是否为另一个字符串旋转前的字符串
最新推荐文章于 2024-09-03 16:36:34 发布