这题可作第一题: 输入一行字符(如何控制?),用数组元素作为计数器来统计每个数字字符的个数 定义int num[10]={0}; 刚好用num[0]来存储'0'这个字符出现的个数 用num[1]来存储'1'这个字符出现的个数 ... 譬如输入"1a22b7cc" 则输出num[1]=1 num[2]=2 num[7]=1 不出现的则不能输出 那么问题来了:如何判断是数字字符,以及数字字符如何对应下标,譬如'1'->num[1]里
时间: 2023-05-21 20:06:24 浏览: 94
浅析C语言中的数组及字符数组
可以使用isdigit()函数来判断一个字符是否为数字字符,它返回值为非零值时表示该字符是数字字符,返回值为零时表示不是数字字符。 对应下标可以用字符减去字符'0'得到,如'1'-'0'等于1,这样就可以直接将字符作为下标访问数组了。 以下是示例代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char str[100];
int num[10] = {0};
cout << "请输入一行字符: ";
cin.getline(str, 100); // 读入一行字符
int len = strlen(str);
for (int i = 0; i < len; ++i) {
if (isdigit(str[i])) { // 判断字符是否为数字字符
int idx = str[i] - '0'; // 计算下标
++num[idx]; // 对应的数字字符出现次数加1
}
}
for (int i = 0; i < 10; ++i) {
if (num[i] != 0) { // 输出不为0的下标及其出现次数
cout << "num[" << i << "]=" << num[i] << endl;
}
}
return 0;
}
```
输入示例:
```
请输入一行字符: 1a22b7cc
```
输出示例:
```
num[1]=1
num[2]=2
num[7]=1
```
阅读全文