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); }
展开
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++;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); }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询