题解 | #统计字符串中各类型字符的个数#
统计字符串中各类型字符的个数
https://www.nowcoder.com/practice/d5b44c494ed24d8ebb10607c469280e3
/*描述 输入一行字符串(无中文字符),分别统计出其中英文字母、空格、数字和其它字符的个数。 输入描述: 输入任意字符串(注:测试用例输入字符串保证无中文字符) 输出描述: 输出字符串中包含的英文字母个数,数字个数,空格个数,其它字符个数*/ #include <iostream> #include <cstring> using namespace std; int main() { int letter = 0; int digit = 0; int space = 0; int other = 0; char buf[1024] = { 0 }; cin.getline(buf, sizeof(buf)); for (int i = 0; buf[i] != '\0'; i++) { if (buf[i] >= 'a' && buf[i] <= 'z' || buf[i] >= 'A' && buf[i] <= 'Z') { letter++; } else if (buf[i] == ' ') { space++; } else if (buf[i] >= '0' && buf[i] <= '9') { digit++;//典错:else if (buf[i] >= 0 && buf[i] <=9)和else if ('0'<=buf[i] <='9') 猜测错误原因:buf[i]是char类型的 而 0和9以及连续不等式判断是数字型干的事情;所以要将0变'0'; } else { other++; } } cout << "letter:" << letter << " digit:" << digit << " space:" << space << " other:" << other << endl; return 0; }