
题目描述编写一个函数计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内0 ~ 127包括空格换行表示结束符不算入字符。不在范围内的不作统计。输入描述输入一行没有空格的字符串。输出描述输出输入字符串中范围0 ~ 127内的字符种数。示例输入textabc输出text3输入textaaa输出text1C 语言解决方案思路与上一题类似的哈希去重思想但这里是统计字符种数开辟大小为128的数组seen[128]初始化为 0。遍历字符串每个字符c若c在0 ~ 127范围内且seen[c] 0则计数加一并标记。最后输出计数。关键点字符本质上是整数ASCII 码可以直接用作数组下标。代码实现c#include stdio.h #include string.h int main(void) { char s[1005]; scanf(%s, s); int seen[128]; memset(seen, 0, sizeof(seen)); int count 0; int len strlen(s); for (int i 0; i len; i) { unsigned char c (unsigned char)s[i]; // 转成无符号避免下标为负 if (c 128 !seen[c]) { seen[c] 1; count; } } printf(%d\n, count); return 0; }