定义一个80个元素的字符数组,输入一串字符存放其中,统计每个数字字符的个数按数字字符的顺序存放在 int c[10]的数组中。并输出结果的C语言程序
时间: 2024-05-12 20:18:38 浏览: 117
好的,以下是代码:
```c
#include<stdio.h>
int main(){
char str[80];
int c[10]={0}; //初始化数组,全部赋为0
int i=0, num=0;
printf("请输入一个不超过80个字符的字符串:\n");
scanf("%s", str);
while(str[i]!='\0'){ //判断是否读到字符串末尾
if(str[i]>='0'&&str[i]<='9'){ //如果该字符是数字字符
num = str[i]-'0'; //将字符转换为数字,例如'0'的ASCII值是48,因此'0'-'0'=0
c[num]++; //对应数字的个数加1
}
i++; //读取下一个字符
}
printf("数字字符出现的次数:\n");
for(i=0;i<10;i++){
printf("%d: %d\n", i, c[i]); //按序号输出数组元素
}
return 0;
}
```
希望能够帮到你!如果你还有其他问题,可以继续问我哦~
相关问题
用C语言编程,定义一个80个元素的字符数组,输入一串字符存放其中,统计每个数字字符的个数按数字字符的顺序存放在数组中。并输出结果。
好的,这是一个关于C语言的问题,我可以回答。下面是示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[80];
int nums[10] = {0}; // 初始化数字计数数组
printf("请输入一串字符:\n");
fgets(str, 80, stdin); // 获取输入的字符串,最多80个字符
for (int i = 0; i < strlen(str); i++) {
if (str[i] >= '0' && str[i] <= '9') {
// 如果是数字字符,则对应计数数组元素加1
nums[str[i] - '0']++;
}
}
printf("每个数字字符的个数为:\n");
for (int i = 0; i < 10; i++) {
printf("%d: %d\n", i, nums[i]);
}
return 0;
}
```
以上代码定义了一个80个元素的字符数组,并使用`fgets`函数获取用户输入的字符串,接着遍历字符串中的每个字符,如果是数字则在对应的计数数组元素上加1,最后输出每个数字字符的个数。
定义一个80个元素的字符数组,输入一串字符存放其中,统计每个数字字符的个数按数字字符的顺序存放在 int c[10]的数组中。并输出结果。
好的,您可以按照以下代码实现该功能:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char arr[80];
int c[10] = {0};
cout << "请输入一串字符:" << endl;
cin >> arr;
int len = strlen(arr);
for(int i = 0; i < len; i++) {
if(arr[i] >= '0' && arr[i] <= '9') {
c[arr[i] - '0']++;
}
}
cout << "每个数字字符的个数为:" << endl;
for(int i = 0; i < 10; i++) {
if(c[i] != 0) {
cout << i << ":" << c[i] << endl;
}
}
return 0;
}
```
以上是C++实现的代码,其中利用了字符和数字的ASCII码的关系来统计数字字符的个数。您可以将该代码复制到您的集成开发环境中,然后运行它来查看结果。注意,输入的字符串长度不要超过80个字符。
阅读全文