以下是引用czz5242199在2012-12-23 00:47:33的发言:
你的算法漏洞很多,比如算下这个
adas
adbbas
你的算法漏洞很多,比如算下这个
adas
adbbas
我的第一个算法不是算as这个词出现的次数,是算a,d,a,s这样的次序出现的次数
如adas
adbbas 出现一次
如as
adsads 出现两次

小小战士,战士中的战斗机!
程序代码:#include <stdio.h>
#include <string.h>
int fun(char *a, char *b)
{
char *p = a;
int i = 0;
while(p = strstr(p, b))
{
++i;
if (!++p)
break;
}
return i;
}
int main()
{
char *a = "asdfdfghfghdfdfdfjhjk";
char *b = "dfdf";
printf("%d\n", fun(a, b));
return 0;
}


程序代码:#include <stdio.h>
#include <string.h>
int Judge(char a, char b)
{
if ('a' <= a && a <= 'z')
a -= 'a' - 'A';
if ('a' <= b && b <= 'z')
b -= 'a' - 'A';
return (a == b);
}
char *Strstr(char *a, char *b)
{
char *p;
int i;
for (p = a;*p;++p)
{
for (i = 0;b[i];++i)
{
if (*(p + i) == '\0') break;
if (!Judge(*(p + i), b[i]))
break;
}
if (!b[i]) return p;
}
return p;
}
int fun(char *a, char *b)
{
char *p = a;
int i = 0;
while(*(p = Strstr(p, b)) != '\0')
{
++i; ++p;
}
return i;
}
int main()
{
char *a = "asadsfsrerAs";
char *b = "as";
printf("%d\n", fun(a, b));
return 0;
} 