标签:
对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串。
给定两个字符串s1和s2,要求判定其中一个字符串是否是另一字符串通过若干次循环移位后的新字符串的子串。例如CDAA是由AABCD两次移位后产生的新串BCDAA的子串,而ABCD与ACBD则不能通过多次移位来得到其中一个字符串是新串的子串。
1 #include<iostream> 2 using namespace std; 3 int fun(string src,string des) 4 { 5 string tmp = src; 6 src=src+tmp; 7 if(strstr(src.c_str(),des.c_str())==NULL)//指向字符串str2 首次出现于字符串str1中的位置,如果没有找到,返回NULL。 8 { 9 return 0; 10 } 11 return 1; 12 } 13 int main() 14 { 15 int i=0,j=0; 16 char a[31]; 17 char b1[31],b2[32]; 18 /*=======================*/ 19 gets(a); 20 while(a[i]!=‘ ‘) 21 { 22 b1[i]=a[i]; 23 i++; 24 } 25 b1[i]=‘\0‘; 26 i++; 27 while(a[i]!=‘\0‘) 28 { 29 b2[j]=a[i]; 30 i++; 31 j++; 32 } 33 b2[j]=‘\0‘; 34 /*=======================*///空格分开存储 35 if(fun(b1,b2)==1) 36 printf("true\n"); 37 else 38 printf("false\n"); 39 }
标签:
原文地址:http://www.cnblogs.com/geek-007/p/5169594.html