利用C语言实现:输入两个字符串,统计一个字符串在另一个字符串中出现的次数 。

 
  

输入两个字符串,统计一个字符串在另一个字符串中出现的次数
例如,asdfgasfgasf,as,则输出3

编程环境为codeblocks,编译器是GUN-GCC,操作系统是win7-64位
分析:此代码主要运用了一个算法,是字符串匹配的朴素模式匹配算法。看懂算法之后再来读代码就没有什么压力了。


代码如下:

 
  
 
  

#include <stdio.h>

#include <stdlib.h>

int main()

{

    char S[100],T[20];

    char ch1,ch2;

    printf("请输入主字符串:\n");

    ch1=getchar();

    int i=0;

    while(ch1!='\n')

    {

        S[i]=ch1;

        i++;

        ch1=getchar();

    }

 

    printf("请输入要筛选的字符串:\n");

    ch2=getchar();

    int j=0;

    while(ch2!='\n')

    {

        T[j]=ch2;

        j++;

        ch2=getchar();

    }

 

    int m,n;//mS的下标,nT的下标

    m=0;

    n=0;

    int num=0;//num用于记录选定单词出现的次数

    while(m<=i&&n<=j)

    {

        if(S[m]==T[n])

        {

            m++;

            n++;

        }

        else

        {

            m=m-n+1;

            n=0;

        }

        if(n==j)

        {

            num++;

        }

    }

    if(m==i+1)

        {

            printf("出现的次数是%d",num);

        }

}

来源:心倾城的网易博客

欢迎分享本文,转载请保留出处!
发布了29 篇原创文章 · 获赞 43 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/xiaoyuge16/article/details/51362330
今日推荐