c中求一字符串在另一字符串中出现的次数

下面的程序是求一字符串(长度为2)在另一字符串中出现的次数的主函数及我自己编的fun函数,但是有些问题,比如母字符串为abccab,子字符串为ab,则可以输出正确结果2.... 下面的程序是 求一字符串(长度为2)在另一字符串中出现的次数 的主函数及我自己编的fun函数,但是有些问题,比如母字符串为abccab,子字符串为ab,则可以输出正确结果2.但是如果母字符串为abaabcc,子字符串为ab的话,输出就是1,这是错误的啊,请问怎样才能输出理想的结果啊? #include"stdio.h" #include"string.h" #include"conio.h" int fun(char *str,char *substr) { char *s=str; char *sub=substr; int n=0; while(*s) {sub=substr; while(*sub) if(*s==*sub) {s++;sub++;} else {s++;break;} if(*sub=='\0')n++; } return n; } void main() { char str[81],substr[3]; int n; printf("输入母字符串"); gets(str); printf("输入子字符串"); gets(substr); puts(str); puts(substr); n=fun(str,substr); printf("n=%d\n",n); } 展开
 我来答
美好还温和的小雪花5066
2014-07-08 · 超过79用户采纳过TA的回答
知道答主
回答量:137
采纳率:71%
帮助的人:71.5万
展开全部
改后 #include"stdio.h" #include"string.h" #include"conio.h" int fun(char *str,char *substr) { char *s=str; char *sub=substr; int n=0; while(*s) {sub=substr; while(*sub) if(*s==*sub) { s++;sub++; } else { s++;sub++;break; } if(*sub=='\0')n++; } return n; } void main() { char str[81],substr[3]; int n; printf("输入母字符串"); gets(str); printf("输入子字符串"); gets(substr); puts(str); puts(substr); n=fun(str,substr); printf("n=%d\n",n); }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式