原题链接:https://vjudge.net/problem/UVA-10082
分类:字符串
备注:常量数组
思路:用一个常量数组记录上键盘上的字符,根据输入的字符,如果不是空格和换行则选择数组中左侧字符输出。
代码如下:
似乎是直接用C的编译器,不可以在循环初始化那里声明变量。(猜测
百度发现原来是C99标准才有的功能。
#include<stdio.h>
#include<string.h>
char s[] = { "`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./" };
int main(void)
{
int len = strlen(s), flag[256];
for (int i = 0; i < len; i++)
flag[s[i]] = i;
char ch;
while (~scanf("%c", &ch))
{
if (ch == ' ' || ch == '\n')printf("%c", ch);
else printf("%c", s[flag[ch] - 1]);
}
return 0;
}