c语言字符串出现次数
以下是 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` 中出现的次数。最后,我们输出结果到控制台中。
需要注意的是,在实际应用中,可能需要对用户输入进行验证和处理,以确保程序的健壮性和安全性。另外,也可以使用其他方法(如标准库函数)来实现统计字符串出现次数的算法。
❷ C语言 输入一个字符串(包含空格),统计每个字符出现的次数和总数(包含空格的次数),并且找出
#include <stdio.h>
int main()
{
unsigned char s[200],a[128]={0},i;
int max=0,maxc;
gets(s);
for(i=0;s[i];i++)
{
a[s[i]]++;
if(a[s[i]]>max)
{
max=a[s[i]];
maxc=s[i];
}
}
for(i=0;i<127;i++)
if(a[i]>0)printf("%c: %d ",i,a[i]);
printf("max:%c--%d times. ",maxc,a[maxc]);
system("pause");
return 0;
}
❸ 用C语言编程:在显示器上输入一段字符串,并统计出现字符的个数和各个字符出现的次数
#include <stdio.h>
void main()
{
char c;
int i,letters=0,num[26]={0}; //字符的个数, 26个字符个数初始化为0
printf("请输入一段字符串:\n");
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
{
letters++;
if(c>='a'&&c<='z') num[c-'a']++;
if(c>='A'&&c<='Z') num[c-'A']++;
}
}
printf("字符的个数:%d\n",letters);
printf("每个字符出现的次数:\n");
for(i=0;i<26;i++)
{
if(num[i]>0)
printf("字符%c:%d次 ",i+'a',num[i]);
}
}
❹ c语言统计字符串中每个字符出现的次数
#include<stdio.h>
#include<stdlib.h>
int findsub(char*src,char*s)
{
char*ptr=src,*p=s;//定义两个指针
char*ptr2=src+strlen(src),*prev=NULL;//ptr2为src的末位置指针
int len=strlen(s),n=0;//子串的长度和计数器
for(;*ptr;ptr++)//循环整个串
{
if(ptr2-ptr<len)//如果一开始子串就大于src,则退出
break;
for(prev=ptr;*prev==*p;prev++,p++)//寻找第一个相等的位置,然后从此位置开始匹配子串
{
if(*(p+1)==0||*(p+1)==10)//如果已经到了子串的末尾
{
n++;//自增
p=s;//重新指向子串
break;//退出
}
}
}
return n;
}
int main(void)
{
char a[81],b[81];//定义两个字符数组
printf("输入原字符串:");
fgets(a,81,stdin);//输入
printf("输入子字符串:");
fgets(b,81,stdin);
printf("找到:%d ",findsub(a,b));
system("pause");
return 0;
}
(4)c语言字符串出现次数扩展阅读:
①printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。
格式输出,它是c语言中产生格式化输出的函数(在stdio.h中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。
要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
简单点理解就是,在一段程序中你正确使用该函数,可以在该程序运行的时候输出你所需要的内容。
②printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。
printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。
其中格式化字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。