题目:主函数main()中调用count()函数统计子串substr在字符串str中出现的次数.例
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int count(char* source, char* substr)
{
int i,j,len_source,len_substr,find_count=0;
len_source=strlen(source);
len_substr=strlen(substr);
if(len_substr>len_source) //如果子串长度大于源串,肯定子串在源串中不会出现
{
return 0;
}
int find=0; //如果两个字符串第一个字符相同则为1
for(i=0;i<=len_source-len_substr;i++)
{
if(source[i]==substr[0]) //如果源串中的某一个字符和子串中的第一个字符相同
{ //则比较余下的是否相同
find=1;
int k=i;
for(j=0;j<len_substr;j++)
{
if(source[k++]!=substr[j]) //如果任意一个不同,则继续比较源串的下一字符
{
find=0;
break;
}
}
if(find==1) //如相同
{
find_count++;
}
}
}
return find_count;
}
int main()
{
char source[50];
char substr[50];
printf("please input source: ");
scanf("%s",source);
printf("please input substr: ");
scanf("%s",substr);
printf("\n\"%s\"在\"%s\"中出现过%d次.",substr,source,count(source,substr));
return 0;
}
追问
好吧,其实这道题是道改错
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询