计算字符串中子串出现的次数 输入 输入以空格相隔的两个字符串(字符数不大于20个),敲回车 输出 统计第一个字符串中 第二个字符串 出现的次数 样例输入 Goodoo o 样例输出 4

计算字符串中子串出现的次数

输入
输入以空格相隔的两个字符串(字符数不大于20个),敲回车

输出
统计第一个字符串中 第二个字符串 出现的次数

样例输入
Goodoo o
样例输出
4

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
// // 拷贝到平台的时候把my_fuction_lib.h注释掉.
//#include "my_fuction_lib.h"

//在此下方插入自定义函数对的声明:

//主函数main
int main()
{
    char s1[100];
    char s2[100];//根据需要分配更大的维数
    char buf[100];

        //while(scanf("%s",str) != EOF , str == " xxx")判断读到了什么;while(gets(str));
    while( scanf("%s %s", s1,s2) != EOF)
    {
        int cnt = 0;
        int len = strlen(s1);
        int len_2 = strlen(s2);
        int j = 0;
/* 挨个字符扫描.(若匹配s2则跳跃len_2 个字符(避开重叠地情况)) */
        for(int i = 0;i < len;i++)
        {
/* 单个字符地去匹配. */
            for( j = 0;j < len_2;j++)
            {
                if(s1[i+j] != s2[j])
                {
                    break;
                }

            }
     /* 匹配成功,则跳过len_2个字符, */
            if(j >= len_2)
            {
                cnt++;
                i += len_2 -1;/* 由for的i++补上. */
            }
        }
        printf("%d\n",cnt);

    }
    return 0;
}
posted @ 2023-08-18 19:16  xuchaoxin1375  阅读(31)  评论(0)    收藏  举报  来源