C语言 统计字串出现次数(数组or指针) 题目描述 计算字符串中子串出现的次数

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

样例输出
4
展开
 我来答
寒寒家
2014-12-12 · TA获得超过2921个赞
知道大有可为答主
回答量:1482
采纳率:100%
帮助的人:1985万
展开全部
//刚回答另外一个类似的问题,写的code
//根据题意修改了下,测试通过,如果有疑问,欢迎交流
#include<stdio.h>
 int strCount(char * str, char * sFind){
 int count = 0;
 for(int i = 0; str[i]!='\0';i++){
 int j = 0;
 for(j = 0; str[i+j]!='\0'&&sFind[j]!='\0';j++){
 if(str[i+j]!=sFind[j])
 break;
 }
 if(sFind[j] == '\0')
 count++;
 }
 return count;
 }

 int main(){
 char a[1000];
 char b[1000];
 scanf("%s %s", a, b);
 printf("%d\n", strCount(a, b));
 return 0;
 }
追问
有没有只用数组做的
追答
//只要把函数声明修改下就可以了
//数组名,本身就是指针
#include<stdio.h>
 int strCount(char str[], char sFind[]){
     int count = 0;
     for(int i = 0; str[i]!='\0';i++){
         int j = 0;
         for(j = 0; str[i+j]!='\0'&&sFind[j]!='\0';j++){
             if(str[i+j]!=sFind[j])
                 break;
         }
         if(sFind[j] == '\0')
             count++;
     }
     return count;
 }
 
 int main(){
     char a[1000];
     char b[1000];
     scanf("%s %s", a, b);
     printf("%d\n", strCount(a, b));
     return 0;
 }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式