急求。。。C语言实现,计算字符串中子串出现的次数,就是先输入一个字符串,再输入一个上面字符串中存在

2025-04-16 12:41:45
推荐回答(4个)
回答1:

你好!给你一个程序,这个程序可以统计含有空格的字符串

    

完整的代码:

#include 
#include 

int find(char * str1, char * str2) 

int i,j; 
int str1len=strlen(str1),str2len=strlen(str2); 
int count=0; 
for(i=0;i  { 
   for(j=0;j    { 
     if(str2[j]!=str1[i+j]) 
   break;    
   } 
   if(j==str2len)
     count++;    
 }
 return count;
}
   
int main()
{
char a[200],b[200],*g;
int c=0;
printf("请输入主串:");
gets(a);
printf("请输入子串:");
gets(b);

    c=find(a,b);

printf("出现的次数:%d\n",c);
return 0;
}

回答2:

#include 
#include 
void main()
{
    char str1[20], str2[20], *p1, *p2;
    int sum=0;
    printf("Please enter two strings\n");
    scanf("%s%s", str1, str2);
    p1=str1;
    p2=str2;
    while(*p1 != '\0')
    {
        if(*p1 == *p2)
        {
            while(*p1 == *p2 && *p2 != '\0')
            {
                p1++;
                p2++;
            }
        }
        else
            p1++;
        if(*p2 == '\0')
            sum++;
        p2=str2;
    }
    printf("%d", sum);
    getchar();
}

希望这个能帮到你。。加油吧少年

  • 请放心使用,有问题的话请追问

  • 满意请及时采纳,谢谢,采纳后你将获得5财富值。

  • 你的采纳将是我继续努力帮助他人的最强动力!

回答3:

int countsubstr(char *str ,char * substr)
{
int count=0;
int nowindex=0;
for(int i=0;i {
char isOK=1;
for(int j=0;j {
if(str[i+j]=='\0')return count;

if(str[i+j]!=substr[j]) isOK=0;
break;
}
if(isOK==1)
{
count++;
i+=strlen(substr)-1;
}
}

return count;
}

回答4:

AT("子字符串")