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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急求。。。C语言实现,计算字符串中子串出现的次数,就是先输入一个字符串,再输入一个上面字符串中存在相关的知识,希望对你有一定的参考价值。

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

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

    

完整的代码:

#include <stdio.h>
#include <string.h>

int find(char * str1, char * str2) 
 
int i,j; 
int str1len=strlen(str1),str2len=strlen(str2); 
int count=0; 
for(i=0;i<str1len-str2len+1;i++)
  
   for(j=0;j<str2len;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;

参考技术A #include <stdio.h>
#include <string.h>
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财富值。

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

本回答被提问者和网友采纳
参考技术B int countsubstr(char *str ,char * substr)

int count=0;
int nowindex=0;
for(int i=0;i<strlen(str);i++)

char isOK=1;
for(int j=0;j<strlen(substr);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;
参考技术C AT("子字符串")追问

AT是什么?我要C实现的,麻烦你帮我写一个

追答

?AT("百度","百度知道")

不对,不对 这是求字符串位置

C语言课程设计题目计算字符串中子串出现的次数

计算字符串中子串出现的次数
题目要求:
利用输入函数输入任意两个字符串,请编写程序求出第二个字符串在第一个字符串中出现的次数,即在第一个字符串中有几个第二个字符串。
主要功能包括:
(1) 用菜单界面实现;
(2) 输入主串;
(3) 输入子串;
(4) 输出子串在主串中出现的次数;
(5) 退出系统;

//题意中的,菜单界面指的是什么?下面的code是之前写的
#include<stdio.h>
//计算子串在父串中出现的次数
 int strCount(char * str, char * sFind)
 int count = 0;
 for(int i = 0; str[i]!='\\0';i++)
 int j = 0;
 for(j = 0; str[i+j]!='\\0'&&sFind[j]!='\\0';j++)
 if(str[i+j]!=sFind[j])
 break;
 
 if(sFind[j] == '\\0')
 count++;
 
 return count;
 
 int main() 
 char a[1000];
 char b[1000];
 scanf("%s %s", a, b);
 printf("%d\\n", strCount(a, b));
 
 return 0;
 

追问

菜单界面类似这个

追答//修改好了,字数限制,第一个函数没有修改,也没有加到下面的程序里
 int main() 
     char a[1000];
     char b[1000];
 int cmd_num = 0;
 while(cmd_num != 4)
 printf("(1) 输入主串\\n");
 printf("(2) 输入子串\\n");
 printf("(3) 输出子串在主串中出现的次数\\n");
 printf("(4) 退出系统\\n");
 printf("请选择:");
 scanf("%d", &cmd_num);
 getchar();
 switch (cmd_num)
 
 case 1:
 printf("请输入主串:");
 gets(a);
 break;
 case 2:
 printf("请输入子串:");
 gets(b);
 break;
 case 3:
 printf("子串在主串中出现了:%d 次\\n", strCount(a, b));
 break;
 default:
 break;
 
 
      
     return 0;
 

(1)输入主串

(2) 输入子串

(3) 输出子串在主串中出现的次数

(4) 退出系统

请选择:1

请输入主串:afaeaf

(1)输入主串

(2) 输入子串

(3) 输出子串在主串中出现的次数

(4) 退出系统

请选择:2

请输入子串:af

(1)输入主串

(2) 输入子串

(3) 输出子串在主串中出现的次数

(4) 退出系统

请选择:3

子串在主串中出现了:2 次

(1)输入主串

(2) 输入子串

(3) 输出子串在主串中出现的次数

(4) 退出系统

请选择:4

请按任意键继续. . .

参考技术A 可以给你做

以上是关于急求。。。C语言实现,计算字符串中子串出现的次数,就是先输入一个字符串,再输入一个上面字符串中存在的主要内容,如果未能解决你的问题,请参考以下文章

C语言 计算字符串中子串出现的次数 求更改

C语言课程设计题目计算字符串中子串出现的次数

C语言试题159之计算字符串中子串出现的次数

C语言问题计算字符串中子串出现的次数。要求:用一个子函数subString()实现,参数为指向字符串

计算字符串中子串出现的次数。

用函数编程实现计算字符串中子串出现的次数,这个程序不知道错哪了