c语言练习题27:判断一个字符串是否为另一个字符串旋转之后的字符串

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

题目:

c语言练习题27:判断一个字符串是否为另一个字符串旋转之后的字符串_第1张图片

 代码:

#include
#include
法一:借助库方法
//int find(char* str1, char* str2) {
//	char tmp[256] = { 0 };
//	strcpy(tmp, str1);
//	strcat(tmp, str1);
//	return strstr(tmp, str2)!=NULL;//在tmp中找str2
//}
//int main() {
//	int ret = find("AAABCD", "BCDAAA");
//	printf("%d\n", ret);
//	return 0;
//}
//法二:旋转一次比一次
int find(char*str, char*str2) {
	int len = strlen(str);
	int i = 0;
	char tmp = 0;
	int j = 0;
	for (i = 0; i < len; i++) {
		tmp = str[0];
		for (j = 0; j < len - 1; j++) {
			str[j] = str[j + 1];
		}
		str[j] = tmp;//旋转一次比一次
		if (strcmp(str, str2) == 0) {
			return 1;
		}
	}
	return 0;
}
int main() {
	char str1[] = "AAABCD";
	char str2 [] = "BCDAAA";
	int ret = find(str1,str2);
	printf("%d\n", ret);
	return 0;
}

你可能感兴趣的:(c语言,算法,linux)