题目描述
编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127),换行表示结束符,不算在字符里。不在范围内的不作统计。
输入描述:
输入N个字符,字符在ACSII码范围内。
输出描述:
输出范围在(0~127)字符的个数。
示例1
输入
abc
输出
3
解题思路
1 如何字符重复个数统计?
如同上一题“提取不重复的整数”,统计整数中数字的重复次数,我们采用了数组。
同样,本题统计0~127字符的出现次数,也可以采用数组来存储。
2 c语言实现
#include <stdio.h>
int count(char* s)
{
int num = 0,a[128] = {0};
int len = strlen(s);
for (int i = 0; i < len; i++) {
if (s[i] >= 0 && s[i] <= 127) {
a[s[i]]++; //a[s[i]]代表s[i]字符出现的次数
}
}
for (int i = 0; i < 128; i++) {
if (a[i]) {//a[i]!=0代表该字符出现过
num++;
}
}
return num;
}
int main()
{
char s[100] = {'\0'};
scanf("%s",s);
printf("%d\n",count(s));
return 0;
}

京公网安备 11010502036488号