输入一行字符,以回车符 '\n'作为 结束符。将输入的一行字符中的所有英文字母替换为字母表中的后一个字母,同时将小写字母转换为大写字母,大写字母转换为小写字母后输出,其他字符按原样输出。用cpp
时间: 2024-09-25 21:03:44 浏览: 68
cpp代码-从键盘输入一串字符,以回车键结束,分别统计输入的字母、数字和其它字符的个数
在C++中,你可以使用`std::ctype`库以及`std::isalpha()`函数来处理这个问题。下面是一个简单的示例程序:
```cpp
#include <iostream>
#include <cctype> // 包含处理字符分类的头文件
void shift_alphabets(char& c) {
if (std::islower(c)) { // 如果是小写字母
c = static_cast<char>(c + 'a' - 'a' + 1); // 转换为大写并加1
} else if (std::isupper(c)) { // 如果是大写字母
c = static_cast<char>(c + 'A' - 'A' + 1); // 转换为小写并加1
}
}
int main() {
std::string input;
std::cout << "请输入一行字符(以回车结束):" << std::endl;
getline(std::cin, input);
for (char& c : input) {
shift_alphabets(c);
// 控制台输出可能会导致字符溢出,这里用更安全的方式打印
if ('a' <= c && c <= 'z') {
std::cout << static_cast<char>(c % 26 + 'A');
} else if ('A' <= c && c <= 'Z') {
std::cout << static_cast<char>((c - 'A' + 1) % 26 + 'A');
} else {
std::cout << c;
}
}
return 0;
}
```
这个程序会读取用户输入的一行字符,然后遍历每个字符,如果是英文字母则进行替换并保持大小写的交替。注意,对于字母'A'到'Z',我们计算模26是为了防止超出字母范围。
阅读全文