用c语言写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。
时间: 2023-02-13 11:48:20 浏览: 194
在C语言中,你可以使用如下的代码来判断一个字符串是否是另一个字符串旋转之后的字符串:
```
#include <stdio.h>
#include <string.h>
// 判断str1是否为str2旋转之后的字符串
// 如果是,返回1;否则返回0
int is_rotated(char *str1, char *str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
if (len1 != len2) {
return 0; // 长度不同,显然不是旋转字符串
}
char temp[2 * len1 + 1];
strcpy(temp, str1);
strcat(temp, str1); // 将str1复制到temp的后面
// 在temp中查找str2
// 如果能找到,说明str1是str2旋转之后的字符串
if (strstr(temp, str2) != NULL) {
return 1;
} else {
return 0;
}
}
int main() {
char str1[100] = "abcdefg";
char str2[100] = "cdefgab";
if (is_rotated(str1, str2)) {
printf("str2是str1旋转之后的字符串\n");
} else {
printf("str2不是str1旋转之后的字符串\n");
}
return 0;
}
```
上述代码实现的思路是:将字符串str1复制一份拼接到temp字符数组的末尾,然后在temp中查找str2。如果能找到,说明str1是str2旋转之后的字符串,否则不是。
阅读全文