获取字符的方法:
字符串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; }