
个人第一想法是对于每一个输入的字符都用if进行处理,很显然操作巨复杂
所以选择开一个常量数组对于每一个读入的字符,直接输出它的前一个就行了
对于这种有一一对应关系的问题,可以考虑用常量数组解决。
此题一定注意除了键盘上可见的一些字符,还有空格tab等
1 #include "bits/stdc++.h" 2 using namespace std; 3 char c,s[]=" `1234567890-=QWERTYUIOP[]\ASDFGHJKL;'ZXCVBNM,./"; 4 int ls; 5 int main(){ 6 freopen ("wertyu.in","r",stdin); 7 freopen ("wertyu.out","w",stdout); 8 int i,j; 9 ls=strlen(s+1); 10 while (c=getchar(),c!=EOF){ 11 for (i=1;i<=ls && s[i]!=c;i++); 12 if (i<=ls) 13 putchar(s[i-1]); 14 else 15 putchar(c); 16 } 17 return 0; 18 }
未来是什么样,未来会发生什么,谁也不知道。
但是我知道,
起码从今天开始努力,
肯定比从明天开始努力,
要快一天实现梦想。
千里之行,始于足下! ——《那年那兔那些事儿》
浙公网安备 33010602011771号