用指针编写一个程序,当输入一个字符串后,要求不仅能够统计其中字符的个数,还能分别指出其中大、小写字母、数字以及其他字符的个数。
时间: 2024-10-14 17:06:03 浏览: 24
当然,我可以帮你编写一个简单的C++程序,该程序使用指针遍历输入的字符串并计算各种字符类型的数量。这里我们假设用户只输入ASCII字符。
```cpp
#include <iostream>
#include <cctype> // 包含处理ASCII字符的头文件
int main() {
std::string input;
std::cout << "Enter a string: ";
std::getline(std::cin, input); // 获取整个行的输入
int totalChars = input.length();
int uppercaseCount = 0;
int lowercaseCount = 0;
int digitCount = 0;
int otherCharCount = 0;
char* ptr = input.c_str(); // 将字符串转换为字符数组
while (*ptr) { // 遍历直到空字符
if (isupper(*ptr)) { // 检查是否是大写字母
uppercaseCount++;
} else if (islower(*ptr)) { // 检查是否是小写字母
lowercaseCount++;
} else if (isdigit(*ptr)) { // 检查是否是数字
digitCount++;
} else { // 其他字符(包括特殊字符)
otherCharCount++;
}
ptr++; // 移动到下一个字符
}
std::cout << "Total characters: " << totalChars << "\n";
std::cout << "Uppercase letters: " << uppercaseCount << "\n";
std::cout << "Lowercase letters: " << lowercaseCount << "\n";
std::cout << "Digits: " << digitCount << "\n";
std::cout << "Other characters: " << otherCharCount << "\n";
return 0;
}
```
在这个程序中,`std::isupper()` 和 `std::islower()` 函数用于检查字符是否为大写或小写字母,`std::isdigit()` 则检查字符是否为数字。非这些条件的字符则归为"其他字符"类别。
阅读全文