3.输入一行字符,分别统计出其中大写英文、小写英文字母、空格、数字和其它字符的个数,要求使用数组统计,不用简单变量。
时间: 2024-08-13 14:08:50 浏览: 50
在编程中,你可以使用C++的`std::ctype`库来实现这个功能,同时结合数组来统计不同类型的字符。以下是一个简单的示例,展示如何统计大写英文、小写英文、空格、数字和其他字符的个数:
```cpp
#include <iostream>
#include <cctype>
#include <string>
int main() {
std::string input;
std::cout << "Enter a line of characters: ";
std::getline(std::cin, input);
const int MAX_CHARS = 256; // 大致上ASCII字符集有256个字符
int uppercase[26] = {0}; // 26个位置用于统计大写字母(A-Z)
int lowercase[26] = {0}; // 同理,用于小写字母(a-z)
int spaces = 0; // 空格计数
int digits[10] = {0}; // 10个位置用于统计0-9的数字
int others[MAX_CHARS - 97 - 65] = {0}; // 剩余的字符用others[]统计
for (char c : input) {
if (isupper(c)) { // 大写字母
uppercase[toupper(c) - 'A']++;
} else if (islower(c)) { // 小写字母
lowercase[c - 'a']++;
} else if (isspace(c)) { // 空格
spaces++;
} else if (isdigit(c)) { // 数字
digits[c - '0']++;
} else { // 其他字符
others[c]++;
}
}
std::cout << "Uppercase letters: " << std::accumulate(uppercase, uppercase + 26, 0) << "\n";
std::cout << "Lowercase letters: " << std::accumulate(lowercase, lowercase + 26, 0) << "\n";
std::cout << "Spaces: " << spaces << "\n";
std::cout << "Digits: " << std::accumulate(digits, digits + 10, 0) << "\n";
std::cout << "Other characters: " << std::accumulate(others, others + MAX_CHARS - 97 - 65, 0) << "\n";
return 0;
}
```
阅读全文