使用c语言 字符种类计数 // 1.实现一个功能,找出字符串中,不同的字符(字符包括a~z,A~Z,0~9)的个数 // 输入: // 字符串长度 // 字符串 // 输出: // 字符种类个数 // 样例输入: // 6 // abaaal // 样例输出:3
时间: 2023-08-29 09:13:56 浏览: 84
以下是使用C语言实现的代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
int n, i;
char str[1001];
int cnt[62] = {0}; // 统计每种字符出现的次数,共62种字符(a~z,A~Z,0~9)
scanf("%d", &n);
scanf("%s", str);
for(i = 0; i < n; i++) {
if(isdigit(str[i])) { // 如果是数字
cnt[str[i] - '0']++;
} else if(isupper(str[i])) { // 如果是大写字母
cnt[str[i] - 'A' + 10]++;
} else if(islower(str[i])) { // 如果是小写字母
cnt[str[i] - 'a' + 36]++;
}
}
int ans = 0;
for(i = 0; i < 62; i++) {
if(cnt[i] > 0) {
ans++;
}
}
printf("%d\n", ans);
return 0;
}
```
首先,我们定义一个长度为62的数组`cnt`,用于统计每种字符出现的次数。数组下标从0到9表示数字0~9出现的次数,从10到35表示大写字母A~Z出现的次数,从36到61表示小写字母a~z出现的次数。
接着,我们读入字符串,并逐个字符进行判断。如果是数字,则在`cnt`数组中对应下标的值加1;如果是大写字母,则在`cnt`数组中对应下标的值加1;如果是小写字母,则在`cnt`数组中对应下标的值加1。
最后,我们统计`cnt`数组中不为0的元素的个数,并输出即可。
阅读全文