#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
while (getline(cin, str)) { // 注意 while 处理多个 case
for(int i=0;i<str.size();i++){
char c=str[i];
if((c<='z' && c>='a') || (c<='Z' && c>='A')){
if(c=='z'){
str[i]='a';
}else {
str[i]+=1;
}
}
}
cout<<str;
}
}
- scanf("%c",)读取单个字符默认跳过空白(换行符\n 和 空格);
- cin>>str; 也会遇到空格或换行符就终止了;
那么 复习一下c++中如何读取一行字符串的(包括空格):
1. cin.getline()读取到字符数组(c最常用)
cin.getline(字符数组名, 最大长度, 终止符);
- 参数说明:第一个参数:目标字符数组(用于存储读取的字符串)。第二个参数:最大读取长度(包括字符串结束符 \0,实际最多读取 n-1 个字符)。第三个参数(可选):终止符,默认为 '\n'(换行符),遇到该字符时停止读取。
- 返回值:返回流对象 cin 本身,可用于链式调用。
#include <iostream>
using namespace std;
int main() {
char str[100]; // 定义字符数组,大小为100
// str[100]最多读取99个字符(留1个位置给'\0'),遇到换行符停止
cin.getline(str, 100);
cout << str << endl;
return 0;
}
2. getline()读取到字符串(c++常用)
- C++ 中 getline(cin, str)用于读取内容到 string 对象,自动动态扩展,无需指定长度;
c++中char类型加减:
char类型的本质是整数(ASCII 码),字符加减本质是整数运算。- 字符 ± 字符 → 结果为整数(ASCII 码的加减)。
- 字符 ± 整数 → 结果为新字符(原 ASCII 码 ± 整数对应的字符),常用于字符编码的偏移(如大小写转换)。
- 注意
char的取值范围,避免溢出。

京公网安备 11010502036488号