解题思路:
首先判断 是否是大写字母,并作相应的转换,其次 将小写字母转换成对应的数字,最后保持数字不做转换。
收获:判断是否为小写字母:islower  
           判断是否为大写字母:isupper
           大写转换小写  tolower 
           小写转换大写  toupper


#include <stdio.h>
#include <ctype.h>
#include <string.h>

void judge_word(char word) {
    if(isupper(word)) {
        if (tolower(word) == 'z') printf("a");
        else printf("%c", tolower(word)+1 );
    } else if (islower(word)) {
        if (('a' <= word) && (word <= 'c')) {
            printf("2");
        } else if (('d' <= word) && (word <= 'f')) {
            printf("3");
        } else if (('g' <= word) && (word <= 'i')) {
            printf("4");
        } else if (('j' <= word) && (word <= 'l')) {
            printf("5");
        } else if (('m' <= word) && (word <= 'o')) {
            printf("6");
        } else if (('p' <= word) && (word <= 's')) {
            printf("7");
        } else if (('t' <= word) && (word <= 'v')) {
            printf("8");
        } else if (('w' <= word) && (word <= 'z')) {
            printf("9");
        } 
    } else {
        printf("%c", word);
    }
}

int main(void) {
    char str[100] = {0};
    while (scanf("%s", str) != EOF) {  // scanf 输入时不处理 最后的结束符号
        int length = strlen(str);
        for(int i = 0; i < length; i++) {
            judge_word(str[i]);
        }
        printf("\n");
    }
    
    return 0;
}