1. 程式人生 > 其它 >C語言:判斷字串是否由已知字串旋轉得到。

C語言:判斷字串是否由已知字串旋轉得到。

技術標籤:C語言應用c語言

用到的字串 函式:
strstr(str1,str2);在str1中查詢str2子串,若存在,返回str1中該字串的首元素地址;若不存在,返回NULL。
strcat (str1,str2);將str2銜接到str1之後,但不能銜接str1本身。
strncat(str1,str2,n);將str2的n個字元 銜接到str1之後,可以銜接str1本身。

#include<stdio.h>
#include<string.h>
//判斷arr2是否為arr1旋轉字串得到的。
//abcdefabcdef  原理:在str1後面追加一個str1
//若arr2是它的子串,則arr2是為arr1旋轉字串得到的。
int is_left_remove(char* str1, char* str2) { int len = strlen(str1); int len2 = strlen(str2); if (len!=len2) { return 0; } strncat(str1, str1, 6);//在str1後面追加一個str1 char* ret = strstr(str1, str2); if (ret==NULL) { return 0; } else { return 1; } } int main() { char arr1[20] = "abcdef"
; char arr2[] = "cdefba"; int ret = is_left_remove(arr1, arr2); if (ret==1) { printf("Yes\n"); } else { printf("No\n"); } return 0; }