主要是用string型的数据遍历可以精确到每一个数组str1[i];
以及其他字符用if判断后面else if\else if\else
#include<iostream>
#include<string>
using namespace std;
int main() {
string str1;
int w1=0, n1=0, sp1=0, ot1=0;
//字母 数字 空格 其他
//cin >> str1; //录入字符
//str1=str1+'\0';
getline(cin, str1); //录入整行字符串,包括空格
//开始匹配
for (int i = 0; i < str1.size(); i++) {
if (str1[i] == ' ') {
sp1++;
}
else if (str1[i] >='0' && str1[i] <= '9') {
n1++;
}
else if( (str1[i] >= 65 && str1[i] <= 90 )|| (str1[i] >= 97 && str1[i] <= 122))
{
w1++; //字母数加1
}
else
{
ot1++;
}
}
std::cout <<w1<<" "<<n1 <<" "<< sp1<<" "<< ot1 << endl;
return 0;
}