C语言:编程统计字符串s在字符串str中出现的次数

若输入字符串1212312345和23,则应输出2若输入字符串33333和33,则应输出4不要用指针的算法... 若输入字符串12 123 12345和23,则应输出2
若输入字符串33333和33,则应输出4
不要用指针的算法
展开
 我来答
夜幕里的曙光
2023-03-12 · TA获得超过108个赞
知道小有建树答主
回答量:1079
采纳率:27%
帮助的人:54.9万
展开全部
以下是 C 语言实现统计字符串 s 在字符串 str 中出现的次数的程序:

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

// 统计字符串 s 在字符串 str 中出现的次数
int countSubstring(char str[], char s[]) {
int n = strlen(str); // 获取字符串 str 的长度
int m = strlen(s); // 获取字符串 s 的长度
int count = 0; // 计数器,初始化为 0

for (int i = 0; i <= n - m; i++) {
// 检查字符串 str 中以 i 开头、长度为 m 的子串是否等于 s
if (strncmp(str + i, s, m) == 0) {
count++; // 如果相等,则计数器加 1
}
}

return count;
}

int main() {
char str[100], s[100];
printf("请输入两个字符串:");
scanf("%s%s", str, s);

int count = countSubstring(str, s);
printf("%s 在 %s 中出现的次数是:%d\n", s, str, count);

return 0;
}
```

在上述代码中,我们首先定义了一个 `countSubstring()` 函数,该函数接受两个字符串作为参数,并返回字符串 `s` 在字符串 `str` 中出现的次数。在函数内部,我们使用一个循环依次检查 `str` 中每个长度为 `m` 的子串是否等于 `s`,如果相等,则计数器加 1。需要注意的是,在比较子串是否相等时,我们使用了 `strncmp()` 函数,它可以指定要比较的字符数,避免了因为字符串长度不同而导致的错误。

在 `main()` 函数中,我们首先使用 `scanf()` 函数获取用户输入的两个字符串,并将其保存到字符数组 `str` 和 `s` 中。然后,我们调用 `countSubstring()` 函数,并传入两个字符串作为参数,以获取字符串 `s` 在字符串 `str` 中出现的次数。最后,我们输出结果到控制台中。

需要注意的是,在实际应用中,可能需要对用户输入进行验证和处理,以确保程序的健壮性和安全性。另外,也可以使用其他方法(如标准库函数)来实现统计字符串出现次数的算法。
不傻不笨不弱智
推荐于2016-10-23 · TA获得超过561个赞
知道小有建树答主
回答量:377
采纳率:100%
帮助的人:316万
展开全部
#include <stdio.h>

int main()
{
char a[100], b[100];
int i=0, j=0, n=0;
gets(a);
gets(b);

while(a[j]!=0)
{
while((a[j+i]==b[i])&&b[i]!=0)
i++;

if(b[i]==0) n++;

i=0;
j++;

}
printf("%d", n);
}
更多追问追答
追问
为什么是j+1
追答
一位一位的往后比啊... 第一次比较从第一个开始 第二次从第二个开始啊..
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳雪松
2012-06-06 · TA获得超过473个赞
知道小有建树答主
回答量:386
采纳率:100%
帮助的人:93.2万
展开全部
for(i=1;;i++)
{
n=0;
for(j=i,k=1;;j++,k++)
{
if(s[k]=0) break;
if(str[j]=0) break;
if(str[j]<>s[k]) break;
}
if(s[k]=0) n=n+1;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式