判斷一個字符串是否為另外一個字符串旋轉之後的字符串。
阿新 • • 發佈:2019-02-16
ring ++ include pan string 兩個 sta void print
例如:給定s1 = AABCD和s2 = BCDAA,返回1,給定s1 = abcd和s2 = ACBD,返回0.
AABCD左旋一個字符得到ABCDA
AABCD左旋兩個字符得到BCDAA
AABCD右旋一個字符得到DAABC
1 #include<stdio.h>
2 #include<string.h>
3
4 void Left_rotate(char* start, char* end)
5 {
6 //ABCD
7 //BACD
8 while (*end != ‘\0‘)
9 {
10 *start = *start^*end;
11 *end = *start^*end;
12 *start = *start^*end;
13 ++start;
14 ++end;
15 }
16 }
17
18 int Find_str(char* str,char* str1)
19 {
20 int k = strlen(str);
21 while (k--)
22 {
23 if (strcmp(str, str1) == 0)
24 {
25 return 1;
26 }
27 else
28 {
29 Left_rotate(str, str + 1);
30 }
31 }
32 return 0;
33 }
34
35 int main()
36 {
37 char str[100];
38 char str1[100];
39 printf("請輸入一段字符串:\n");
40 scanf("%s", &str);
41 printf("請輸入要判斷的字符串:\n");
42 scanf("%s",&str1);
43 int find = Find_str(str, str1);
44 printf("%d",Find_str(str,str1));
45
46 return 0;
47 }
判斷一個字符串是否為另外一個字符串旋轉之後的字符串。