LHL算法入门经典 5.1.1 WERTYU (输入偏移)

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;
}
发布了33 篇原创文章 · 获赞 14 · 访问量 621

猜你喜欢

转载自blog.csdn.net/Simple_questions/article/details/105006659