当前位置:首页 » 编程语言 » c语言统计字符出现的次数

c语言统计字符出现的次数

发布时间: 2025-07-01 02:27:24

‘壹’ 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` 中出现的次数。最后,我们输出结果到控制台中。

需要注意的是,在实际应用中,可能需要对用户输入进行验证和处理,以确保程序的健壮性和安全性。另外,也可以使用其他方法(如标准库函数)来实现统计字符串出现次数的算法

‘贰’ 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&lt;stdio.h&gt;

#include&lt;stdlib.h&gt;

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++)//循环整个串

n++;//自增

p=s;//重新指向子串

break;//退出

char a[81],b[81];//定义两个字符数组

fgets(b,81,stdin);

printf("找到:%d ",findsub(a,b));

system("pause");

return 0;

}

数据类型:

字符串数据类型是建模在形式字符串的想法上的数据类型。字符串是几乎在所有编程语言中可以实现的非常重要和有用的数据类型。在某些语言中它们可作为基本类型获得,在另一些语言中做为复合类型获得。多数高级语言的语法允许通常用某种方式引用起来的字符串来表示字符串数据类型的实例;这种元字符串叫做“文本”或“字符串文本”。

以上内容参考:网络-字符串

‘伍’ c语言统计字符串中每个字符出现的次数

#include&lt;stdio.h&gt;

#include&lt;stdlib.h&gt;

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&lt;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;

}

(5)c语言统计字符出现的次数扩展阅读:

①printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。

格式输出,它是c语言中产生格式化输出的函数(在stdio.h中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。

要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

简单点理解就是,在一段程序中你正确使用该函数,可以在该程序运行的时候输出你所需要的内容。

②printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。

printf()函数的调用格式为:printf("&lt;格式化字符串&gt;",&lt;参量表&gt;)。

其中格式化字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。

热点内容
php字符串截取中文 发布:2025-07-01 07:26:46 浏览:431
8266连接阿里云服务器 发布:2025-07-01 07:23:38 浏览:3
php提交方式 发布:2025-07-01 07:23:36 浏览:355
对java理解 发布:2025-07-01 07:22:16 浏览:910
我的世界逆编译 发布:2025-07-01 07:12:14 浏览:771
ssd英特尔快速存储技术 发布:2025-07-01 07:07:11 浏览:227
python保留小数 发布:2025-07-01 06:45:34 浏览:756
为什么服务器有多个ip地址冲突 发布:2025-07-01 06:32:09 浏览:624
java的md5算法实现 发布:2025-07-01 06:23:09 浏览:236
android默认的activity 发布:2025-07-01 06:06:12 浏览:424