C语言写一段代码,实现一个功能,找出字符串中,不同的字符(字符包括a~z,A~Z,0~9)的个数 输入: 字符串长度 字符串 输出: 字符种类个数 样例输入: 6 abaaal 样例输出:3
时间: 2023-07-16 21:11:29 浏览: 102
以下是一种实现方式:
```c
#include <stdio.h>
int main() {
int len;
char str[100];
int count[128] = {0}; // 存储每个字符出现的次数,初始化为0
int distinct_count = 0;
scanf("%d", &len);
scanf("%s", str);
for (int i = 0; i < len; i++) {
char c = str[i];
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9')) {
// 如果是字母或数字
if (count[c] == 0) {
// 如果该字符第一次出现
distinct_count++;
}
count[c]++;
}
}
printf("%d\n", distinct_count);
return 0;
}
```
思路:
1. 定义一个长度为128的数组count,用于存储每个字符出现的次数,因为ASCII码表中共有128个字符;
2. 循环读入字符串中的每个字符,判断该字符是否是字母或数字;
3. 如果是字母或数字,则将该字符出现的次数加1,并判断该字符是否是第一次出现,如果是,则不同字符个数distinct_count加1;
4. 最后输出distinct_count即可。
阅读全文