紫书P47 例题3-2
一、题意
输入一段字符串,是手在键盘向右移了一个后的输出结果,要求输出原字符串。
二、解析
用const字符串存放会输入/出的所有字符,然后边输入边找原来的字符(即前一个)进行输出
三、代码
#include <iostream>
#include <string>
using namespace std;
const string str = "`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";
int main() {
char ch;
while((ch = getchar()) != EOF) {
int idx = str.find(ch);
if(idx != str.npos) putchar(str[idx - 1]);
else putchar(ch);
}
}
/*
O S, GOMR YPFSU/
*/四、归纳
- 学会用const存放常量的方式
- 通过str.find(ch, start_pos)来从一个字符串中获取某个字符第一次出现的位置,注意如果找不到返回的是 str.npos, 不是str.size()
加油吧

京公网安备 11010502036488号