下面是我做的,可是错了,错在哪? #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
#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