c语言,计算子字符串个数,现在输入abcabcdgabc,应该是输出2,实际输出3
发布网友
发布时间:2022-05-25 11:50
我来回答
共2个回答
热心网友
时间:2023-10-09 18:01
#include <stdio.h>
main( )
{
int countsub( char *str, char *ss );
char s1[1000] = {0}, s2[100] = {0};
gets(s1);
gets(s2);
printf("%d\n", countsub( s1, s2 ) );
}
int countsub( char *str, char *ss )
{
int t=0;
char *p1=str,*p2=NULL;
while(p1=strstr(p1,ss))
{
if(p1!=p2+strlen(ss))
t=(t==0)?1:t;
else
t++;
p2=p1;
p1+=strlen(ss);
}
return t;
}
楼主的算法有些问题,你可以试一下s1为ababa,s2为aba的情况,会得到2,但实际只有1。
我改了个,你看看。
热心网友
时间:2023-10-09 18:02
abc abc dg abc 这的确有3个abc,你看错了吧?追问是要连续的abc