解题思路:
用一个字符数组存储键盘上面的字符,利用putchar和getchar进行输入输出字符,找到对应字符出现的位置,输出其前面一个即可,采用字符数组避免了大量的switch/case语句。
#include<stdio.h>
int main()
{
char *s="`1234567890-=QWERTYUIOP[]\ASDFGHJKL;'ZXCVBNM,./";//用字符数组的形式存储元素,省去了大量的switch/case语句
int c,i;//从键盘输入的用int表示
while((c=getchar())!=EOF) //用于处理一串字符,单个处理字符,统一输出。 Dev C++和codeblocks中以回车键结束输入。
{
for(i=1;s[i]&&s[i]!=c;i++);//'\0'的ascII码是0,所以当s[i]=0时,表示到了字符数组的末尾。 ,此处循环主要是找到C在字符数组中的位置i
if(s[i])
putchar(s[i-1]);
else
putchar(c);
}
return 0;
}