【问题描述】
对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串
给定两个字符串s1和s2,要求判定其中一个字符串是否是另一个字符串通过若干次循环移位后的新字符串的子串。
【输入】
一行,包含两个字符串,中间由若干空格隔开。字符串只包含字母和数字,长度不超过30。
【输出】
如果一个字符串是另一个字符串通过若干次循环移位产生的新的串的子串,则输出true,否则输出false。
【输出样例】
AABCD CDAA
【输出样例】
true
【参考程序】
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24#include<stdio.h> #include<string.h> const int n=61; char s1[n],s2[n],x[n],t[n]; int l1,l2; int main(){ scanf("%s%s",&s1,&s2); if(strlen(s1) < strlen(s2)){ strcpy(t,s1); strcpy(s1,s2); strcpy(s2,t); } strcpy(x,s1); if(strstr(strcat(s1,x)/*亮点*/,s2) == NULL) printf("falsen"); else printf("truen"); return 0; } /* strstr(s1,s2)函数用于判断s2字符串是否是s1字符串的子串, 是则返回str2在str1中首次出现的地址,否则返回NULL。 strcat(s1,s2)用于将str2连接到str1后并返回str1的值 */
这么多天打开新思路的题
这个字符串函数包比想象中的有用
最后
以上就是坦率白开水最近收集整理的关于字符串移位包含问题的全部内容,更多相关字符串移位包含问题内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复