当先锋百科网

首页 1 2 3 4 5 6 7

给你个类似的。。。你小改下,就应该可以了。希望对你有帮助

/*编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。

例如,假定输入的字符串为:asdasasdfgasdaszx67asdmklo,

子字符串为:as,则应输出6。

[程序分析]

由于小串中只有2个字符所以可用str[i]==sbustr[0]&&str[i+1]==substr[1]来判断小串是否与长串当前位置(str[i])相同(即出现一次)。

因而只要让长串当前位置逐一向后移即可(用for()循环来完成)

*/

//[源程序]

#include"stdio.h"

#include"string.h"

#include"conio.h"

intfun(char*str,char*substr)

{inti,n=0,s=strlen(str);

for(i=0;i<s;i++)

if((str[i]==substr[0])&&(str[i+1]==substr[1]))

n++;

returnn;

}

main()

{

charstr[81],substr[3];

intn;

printf("输入的字符串:");

gets(str);

printf("子字符串:");

gets(substr);

puts(str);

puts(substr);

n=fun(str,substr);

printf("n=%d\n",n)

}

/*******************************************************************************************************/

按你的意思我改了下调用函数里的

intfun(char*str,char*substr)

{

inti,j,n=0,s=strlen(str),m=strlen(substr),pan=1;

printf("%d\n",m);

for(i=0;i<s;i++)

{pan=1;

for(j=0;j<m;j++)

if((str[i+j]!=substr[j]))//这是进行比较,不是跳出

{pan=0;

break;}

if(pan)

n++;

}

returnn;

}