5.1.1 WERTYU (输入偏移)
把手放在键盘上时,稍不注意就会往右错一位。 这样的话,Q会变成W,J会变成K等。 输入一个错位敲出的字符串,输出打字员本来想打出的句子。
样例输入:O S,GOMR YPFSU/
样例输出:I AMFINE TODAY.
#include<stdio.h>
char *s="`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";
// 第一个\为转义字符
//移位只对大写字母有效
int main()
{ int i,c;
while((c=getchar())!=EOF)
{//循环回显地输入字符,当输入ctrl+z时结束。EOF=-1=ctrl+z输出的控制字符
for(i=1;s[i]&&s[i]!=c;i++);//这个分号不可少!!!!
//当s[i]等于输入字符时或s[i]为空字符(即字符串最后一位)跳出循环
if(s[i]) putchar(s[i-1]);
//若s[i]不为空,即s[i]=c,输出s[i-1],即c向左偏移一位的字符
else putchar(c);
//否则输出c,即不偏移。输入小写字母就会出现这种情况
}
return 0;
}