C语言中,利用函数判断一个子串在另一个字符串的次数

下面是我做的,可是错了,错在哪? #include<stdio.h> #include<string.h> int fun(char *s1,char*s2) { int n; char s[]=""; if(strstr(s1,s2)==NULL) return 0; if(strstr(s1,s2)!=NULL) { for(n=0;strstr(s1,s2)==NULL;n++) strcpy(strstr(s1,s2),s); return n; }} void main() { char s1[30],s2[10]; gets(s1); gets(s2); printf("%d\n",fun(s1,s2)); }

第1个回答  2019-10-20
调试通过的程序代码如下:
#include <stdio.h>
#include <string.h>
int fun(char *s1,char *s2)
{
int n=0;
char *s;
while((s=strstr(s1,s2))!=NULL) {n++;s1=s+1;}
return n;
}
void main()
{
char s1[30],s2[10];
gets(s1);
gets(s2);
printf("%d\n",fun(s1,s2));
}
上面的程序运行结果如下:
abc123def123ghijkl123m
123
3

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网