C语言课程设计题目计算字符串中子串出现的次数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言课程设计题目计算字符串中子串出现的次数相关的知识,希望对你有一定的参考价值。
计算字符串中子串出现的次数
题目要求:
利用输入函数输入任意两个字符串,请编写程序求出第二个字符串在第一个字符串中出现的次数,即在第一个字符串中有几个第二个字符串。
主要功能包括:
(1) 用菜单界面实现;
(2) 输入主串;
(3) 输入子串;
(4) 输出子串在主串中出现的次数;
(5) 退出系统;
#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语言实现,计算字符串中子串出现的次数,就是先输入一个字符串,再输入一个上面字符串中存在的字符串,计算第二个字符串在第一个字符串中出现的次数。好评
你好!给你一个程序,这个程序可以统计含有空格的字符串
完整的代码:
#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财富值。
你的采纳将是我继续努力帮助他人的最强动力!
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语言课程设计题目计算字符串中子串出现的次数的主要内容,如果未能解决你的问题,请参考以下文章
急求。。。C语言实现,计算字符串中子串出现的次数,就是先输入一个字符串,再输入一个上面字符串中存在
急求。。。C语言实现,计算字符串中子串出现的次数,比如输入GACTC,要求输出GA,AC,CT,TC出现的次数