每日一题:华为初级题库——字符个数统计
<题目要求>
输入一行字符串,统计并输出ASCII(0-127)字符个数,不在范围的数据不统计。
思路:方法一:先将字符串进行排序,统计总的个数len,再遍历字符串,比较当前位字符和后一位字符是否相等,若相等则表明重复,总个数len递减;方法二:建立一个数组c[128],以字符的ASCII码值做索引,用数组的值来统计字符出现的个数。
易错点:ASCII码字包括空格,所以输入和存储字符的时候,要用getline。
这个易错点,不止一次出现错误了,要注意!!!!!
#include <iostream> #include <string> using namespace std; int main() { string a; int c[128]={0}; int len=0; getline(cin,a); for(int i=0;a[i]!='\0';i++) { if(a[i]>=0&&a[i]<=127) { int t=(int)a[i]; c[t]++; } } for(int j=0;j<128;j++) { if(c[j]!=0) len++; } cout <<len<< endl; return 0; }