天之道

享受编程的乐趣。
posts - 118, comments - 7, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

检测子串是否存在(2.0版本)

Posted on 2012-08-18 21:31 hoshelly 阅读(233) 评论(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;
}

输出结果实例:


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理