请用c语言编写程序,实现统计字符串s中数字字符‘0’~‘9’出现的次数,并依次存储在长度为10的数组count中
时间: 2023-10-30 15:19:19 浏览: 89
好的,以下是程序实现:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char s[] = "abc1234def5678";
int count[10] = {0};
int len = strlen(s);
for (int i = 0; i < len; i++) {
if (s[i] >= '0' && s[i] <= '9') {
count[s[i] - '0']++;
}
}
for (int i = 0; i < 10; i++) {
printf("%d ", count[i]);
}
return 0;
}
```
解释一下:
首先定义了一个字符串 `s` 和一个长度为10的数组 `count`,用于统计数字字符出现的次数。
然后使用 `strlen` 函数获取字符串 `s` 的长度,遍历字符串中的每个字符,如果该字符是数字字符,则将对应的计数器加1。
最后遍历计数器数组,依次输出每个数字字符出现的次数。由于数字字符 ‘0’~‘9’ 对应的 ASCII 码值依次为 48~57,因此可以通过字符减去 ‘0’ 的值得到对应的计数器下标。
相关问题
用c语言编写请编写程序,实现统计字符串s中数字字符‘0’~‘9,出现的次数,并依次存储 在长度为10的数组count中。 例如,当输入字符串“8374832917846739274560183”后,count 数组各元素的值即为 1224312442,表示: 数字字符‘0’出现1次 数字字符‘1’出现2次 数字字符‘2’出现2次 数字字符‘3’出现4次 数字字符‘4’出现3次 数字字符‘5’出现1次 数字字符‘6’出现2次 数字字符‘7’出现4次 数字字符‘8’出现4次 数字字符‘9’出现2次
以下是用 C 语言编写的程序,可以实现统计字符串 s 中数字字符 ‘0’ ~ ‘9’ 出现的次数,并依次存储在长度为 10 的数组 count 中:
```c
#include <stdio.h>
#include <string.h>
int main() {
char s[100];
int count[10] = {0};
int i, len;
printf("请输入一个字符串:");
scanf("%s", s);
len = strlen(s);
for (i = 0; i < len; i++) {
if (s[i] >= '0' && s[i] <= '9') {
count[s[i] - '0']++;
}
}
for (i = 0; i < 10; i++) {
printf("数字字符 \'%d\' 出现 %d 次\n", i, count[i]);
}
return 0;
}
```
当输入字符串 "8374832917846739274560183" 后,程序会输出:
```
数字字符 '0' 出现 1 次
数字字符 '1' 出现 2 次
数字字符 '2' 出现 2 次
数字字符 '3' 出现 4 次
数字字符 '4' 出现 3 次
数字字符 '5' 出现 1 次
数字字符 '6' 出现 2 次
数字字符 '7' 出现 4 次
数字字符 '8' 出现 4 次
数字字符 '9' 出现 2 次
```
【问题描述】 编写程序实现:用一维数组进行存储从键盘输入一个字符串,统计并输出出现次数最多的字母(大小写字母为同一个字母)。如有多个字母出现次数相同,则输出ASCII值小的字母。 【输入形式】 长度为100以内,且至少包含一个字母的字符串,其中的字符可以是大写字母、小写字母和数字字符。 【输出形式】 出现次数次数最多的字母(大写)。用C语言
以下是C语言实现的代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[101];
int count[26] = {0}; // 存储每个字母的出现次数,从a到z依次对应0到25
// 读入字符串
scanf("%s", str);
// 统计每个字母的出现次数
int len = strlen(str);
for(int i = 0; i < len; i++)
{
if(str[i] >= 'a' && str[i] <= 'z') // 如果是小写字母,转换成大写字母
{
str[i] -= 32;
}
if(str[i] >= 'A' && str[i] <= 'Z') // 如果是大写字母,统计出现次数
{
count[str[i]-'A']++;
}
}
// 找出出现次数最多的字母
int max_count = 0, max_index = 0;
for(int i = 0; i < 26; i++)
{
if(count[i] > max_count)
{
max_count = count[i];
max_index = i;
}
}
// 输出出现次数最多的字母
printf("%c\n", max_index+'A');
return 0;
}
```
首先定义一个长度为26的整型数组count,存储每个字母的出现次数,从a到z依次对应0到25。然后读入字符串,遍历字符串,如果是小写字母,转换成大写字母,然后统计大写字母的出现次数。统计完成后,遍历整个count数组,找出出现次数最多的字母,并输出该字母的大写形式。
阅读全文