C语言:输入一字符串存入字符数组,将其中小写英文字母用后面第三个代替(循环代替),大写英文字母用前

C语言:输入一字符串存入字符数组,将其中小写英文字母用后面第三个代替(循环代替),大写英文字母用前面第三个代替(循环代替),其余字符不变,输出新的字符串。

#include <stdio.h>
#include <ctype.h>
int main(void) {
    char str[100], *c;
    printf("Input a string: ");
    gets(str);
    for (c = str; *c; c++) {
        if (islower(*c)) {
            if (*c >= 'x') *c -= 23;
            else *c += 3;
        } else if (islower(*c)) {
            if (*c <= 'C') *c += 23;
            else *c -= 3;
        }
    }
    puts(str);
    return 0;
}

/* 不符合题目要求,但仍然管用 */
#include <stdio.h>
char lower_case[] = "defghijklmnopqrstuvwxyzabc";
char upper_case[] = "XYZABCDEFGHIJKLMNOPQRSTUVW";
int main(void) {
    int c;
    printf("Input a string: ");
    while ((c = getchar()) != '\n') {
        if ((c >= 'a') && (c < 'z'))
            c = lower_case[c - 'a'];
        else if ((c >= 'A') && (c <= 'Z'))
            c = upper_case[c - 'A'];
        putchar(c);
    }
    return 0;
}

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网