题解 | #简单密码#

简单密码

https://www.nowcoder.com/practice/ff99c43dd07f4e95a8f2f5448da3772a

我试的自测和提交都没问题呀

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

void func(){    //解密函数
    getchar();  //把输入缓冲区清空
    char text[201];
    gets(text);
    int len = strlen(text);
    for (int i = 0; i < len; ++i) {
        if(text[i] >= 'A' && text[i] <= 'E'){
            text[i] += 21;
        }
        else if(text[i] >= 'F' && text[i] <= 'Z'){
            text[i] -= 5;
        }
    }
    for (int i = 0; i < len; ++i) {
        printf("%c", text[i]);
    }
    printf("\n");
}

int main(){
    char beginText[15], endText[15];    //输密码之前和之后的句子
    char start[] = "START";
    char trueEnd[] = "ENDOFINPUT";
    char end[] = "END";

    while(scanf("%s", beginText) != EOF){
        if (strcmp(beginText, trueEnd) == 0){   //如果是ENDOFINPUT则退出程序
            return 0;
        }
        else if(strcmp(beginText, start) != 0){     //如果不是START则报错并退出程序
            printf("ERROR!\n");
            return 0;
        }
        else{   //是START则调用函数解密
            func();
        }
        scanf("%s", endText);
        if(strcmp(endText, end) == 0){      //结束语是END则继续
            continue;
        }
        else{       //如果结束语不是END则报错并退出程序
            printf("ERROR!\n");
            return 0;
        }
    }
    return 0;
}

全部评论

相关推荐

点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务