紫书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()
加油吧