c语言字符串出现的次数
1. c语言编程:输入一字符串,统计字符串中各个字符出现的频率
可以先排序,在遍历统计。
#include<stdio.h>
#include<string.h>
//升序字符串src,然后返回
char*sort(char*src)
{
chartem,len=strlen(src);
for(inti=0;src[i];i++)
{
for(intj=0;j<len-i-1;j++)
if(src[j]>src[j+1])
{
tem=src[j];
src[j]=src[j+1];
src[j+1]=tem;
}
}
returnsrc;
}
intmain()
{
charstr[1000],ch;
inti=0,cnt;
printf("inputastring:");
gets(str);
sort(str);//排序
ch=str[0];
cnt=1;
for(i=1;str[i];i++)//遍历统计
{
if(str[i]!=ch)
{
if(cnt)
printf("%chas%d. ",ch,cnt);
ch=str[i];
cnt=1;
}
else
cnt++;
}
if(cnt)
printf("%chas%d. ",ch,cnt);
return0;
}
2. C语言:编程统计字符串s在字符串str中出现的次数
以下是 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` 中出现的次数。最后,我们输出结果到控制台中。
需要注意的是,在实际应用中,可能需要对用户输入进行验证和处理,以确保程序的健壮性和安全性。另外,也可以使用其他方法(如标准库函数)来实现统计字符串出现次数的算法。
3. c语言,输入一个字符串,计算某字符出现次数
可以吵腔参考下面的代码拍悄:
#include <stdio.h>
#include <string.h>
voidmain()
{charc,s[80];inti,k=0;
gets(s);/*输入字符串*/
printf("Pleaseinputacharacter:");c=getchar();
for(i=0;s[i]!='