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

请按任意键继续. . .

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-13
可以给你做
相似回答