Posted on 2012-08-18 21:31
hoshelly 阅读(240)
评论(0) 编辑 收藏 引用 所属分类:
Programming
编写一个程序,输入一个字符串 a ,并且输入一组子串的序列,字符序列之间用空格隔开,打印出那些为字符串 a 的子串。(本次输入的子串不分先后,可以 a 的子串在前面,亦可非 a 的子串在前面)
代码测试通过:
#include<stdio.h>
#include<
string.h>
#define N 1000
int main()
{
char a[N],b[100];
int i,j;
printf("Input the a string: ");
//输入字符串
gets(a);
while((scanf("%s",b)) != EOF )
//输入要检测的子串
{
for(i=0;a[i]!=0;i++)
//开始检测
{
for(j=0;b[j]!=0;j++)
{
if(a[i+j]!=b[j])
//如果字符不匹配,则退出本次循环,进行第一层循环i+1
break;
}
if(b[j] == '\0')
//如果b[j] = '\0',则说明字符匹配到了子串的最后,匹配成功,输出子串
printf("%s\n",b);
}
}
return 0;
}
输出结果实例:
![](/images/cppblog_com/zhenglinbo/QQ截图20120818212929.jpg)