编写函数fun,函数的功能是:统计一个长度是2的子字符串在另一个字符串中出现的次数。

#include<stdio.h>
#include<string.h>
int fun(char *str,char *substr)
{
}
main()
{ char str[81],substr[81]; int n;
gets(str);
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
printf("n=%d\n\n",n);
}

第1个回答  推荐于2018-05-11
int fun(char *str,char *substr)
{
int counter=0;
for(int i=0;str[i+1]!='\0';i++)
{
if(str[i]==substr[0]&&str[i+1]==substr[1])
counter++;
}
return counter;

}本回答被提问者和网友采纳
第2个回答  2010-08-23
int fun(char *str,char *substr)
{
int n = 0;
if (2 != strlen(substr)) //如果子字符串长度不为2,返回0
{
printf("子字符串长度错误!\n");
return 0;
}
while (1)
{
str = strstr(str, substr);
if (NULL != str)
{
str+=2;
n++;
}
else
{
break;
}
}
return n;
}
第3个回答  2010-08-23
int fun(char *str,char *substr)
{
int cnt;
char* pszStr;

cnt = 0;
pszStr = str;
while('\0' != *pszStr)
{
if(*pszStr == *substr && *(pszStr+1) == *(substr+1))
{
cnt++;

// 假设字符串sss中ss出现的次数算1次,则使用此句
// 算2次则把此句去掉
pszStr++;
}
pszStr++;
}
return cnt;
}
第4个回答  2010-08-23
//---------------------------------------------------------------------------

#include<stdio.h>
#include<string.h>
int fun(char *str,char *substr)
{
int i,j,cnt=0;
const int lc=strlen(str)-strlen(substr);

for (i = 0; i<lc; i++) {
for (j=0; substr[j]; j++)
if (str[i+j]!=substr[j]) break;
if (substr[j]=='\0')
++cnt;
}
return cnt;
}
main()
{ char str[81],substr[81]; int n;
gets(str);
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
printf("n=%d\n\n",n);
}
//---------------------------------------------------------------------------

相关了解……

你可能感兴趣的内容

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