10082 - WERTYU

2017-02-28  本文已影响0人  不会积
Problem.png
一个简单的字符映射问题,将输入字符映射为键盘上该字符左边的字符,题目里已经排除了各种非法输入。
可以用一个常量字符数组保存键盘上的合法输入字符,每次读取一个输入字符后,在数组中寻找该字符,找到就将其前一个(即左边的)字符打印出来,没找到就直接输出(即空格)。
主要技巧就是常量数组的应用。
#include <stdio.h>
#include <string.h>

int main() {
    // 注意要把'\'进行转义
    char s[] = {"1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./"};
    char c;
    int len = strlen(s);
    while ((c = getchar()) != EOF) {
        int i;
        for (i = 0; i < len; i++) {
            if (s[i] == c) {
                break;
            }
        }
        if (i != len) {
            putchar(s[i - 1]); // 找到了就输出前一个字符
        }
        else {
            putchar(c);        // 没找到就原样输出
        }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读