美文网首页
10082 - WERTYU

10082 - WERTYU

作者: 不会积 | 来源:发表于2017-02-28 12:38 被阅读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);        // 没找到就原样输出
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:10082 - WERTYU

          本文链接:https://www.haomeiwen.com/subject/odjxgttx.html