C++ 输入一行,包含若干个字符,包含大写字母,小写字母、数字字符和其他字符,最后以’#'结尾,对这些字符进行分类统计,按照顺序输出大写字母、小写字母、数字字符和其他字符的数量。(不包含“#”)
时间: 2024-09-22 08:05:54 浏览: 124
在C++中,你可以使用`std::istringstream`来逐个读取输入字符串中的字符,并使用`std::string`来存储分类的结果。这里是一个简单的示例程序:
```cpp
#include <iostream>
#include <sstream>
#include <cctype> // 包含处理字符类别操作的头文件
int main() {
std::string input;
std::getline(std::cin, input); // 从标准输入获取一行字符
std::istringstream iss(input);
int upper_count = 0, lower_count = 0, digit_count = 0, others_count = 0;
while (iss >> std::noskipws) { // 忽略空格并读取下一个字符
char c = iss.get();
if (isupper(c)) {
upper_count++;
} else if (islower(c)) {
lower_count++;
} else if (isdigit(c)) {
digit_count++;
} else {
others_count++; // 其他非字母和数字的字符
}
}
std::cout << "大写字母数量: " << upper_count << "\n";
std::cout << "小写字母数量: " << lower_count << "\n";
std::cout << "数字字符数量: " << digit_count << "\n";
std::cout << "其他字符数量: " << others_count << "\n";
return 0;
}
```
在这个程序中,我们使用`isupper()`、`islower()`和`isdigit()`函数来检查字符的类型,然后分别计数。当遇到不是字母和数字的字符时,我们将其归类到"其他"类别。
阅读全文