题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1023
题意:输入错位的字符串,把它转化成正确的字符串输出
学习:一个‘\’是转义字符,两个是输出‘\\’;
思路:使用一个常量数组储存键盘,输入每个字符直接输出字符使用getchar();
代码:
#include<string.h>
#include<stdio.h>
char s[] = "`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";
int main()
{
char c;
while((c = getchar()) != EOF)
{
int i;
for(i = 1; s[i]&&s[i]!=c; i++);//错位的字符在常量数组中出现的位置
if(s[i])//找到,输出常量数组的前一个字符
putchar(s[i-1]);
else
putchar(c);
}
return 0;
}