获取字符的方法:
字符串scanf("%s” ,&arr[0]) ——需要创建大buffer
字符scanf("%c", &ch) ——不需要创建大buffer
#include <stdio.h>
#if 0
int main(void)
{
char buffer[501] = {'\0'};//存放字符串
int count[128] = {0};//把字符串对应的ascii码作为下标
char result = 0;//计算不同字符个数
scanf("%s", &buffer);
for(int i = 0; i<strlen(buffer); i++)
{
if(buffer[i]>=0&&buffer[i]<=127)
count[buffer[i]]++;
}
for(int i = 0; i<128; i++)
{
if(count[i]!=0)
result++;
}
printf("%d", result);
return 0;
}
#endif
int main(void)
{
int count[128] = {0};//把字符串对应的ascii码作为下标
char result = 0;//计算不同字符个数
//输入不定长的字符串: 单个字符处理,不用创建大的RAM buffer
char ch = 0;
while(EOF != scanf("%c", &ch))
{
if(ch == '\n')
break;
if(ch>=0&&ch<=127)
if(count[ch] == 0)
{
count[ch]++;
result++;
}
}
printf("%d", result);
return 0;
}



京公网安备 11010502036488号