其他分享
首页 > 其他分享> > 判断一个字符串是否为另一个字符串旋转前的字符串

判断一个字符串是否为另一个字符串旋转前的字符串

作者:互联网

//************************************************************************************//
 判断一个字符串是否为另一个字符串旋转前的字符串
//************************************************************************************//

 思路:叠加判断
对原始字符串str1进行扩展,str1 = str1 + str1;
此时str1包含了所有旋转结果;
再将部分str1与str2进行判断;
//
//
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;

}

标签:判断,int,str2,str1,strcat,旋转,char,字符串
来源: https://blog.csdn.net/FLY__Kun/article/details/119359502