题解 第四章字符串| #简单密码#

简单密码

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

本题测试点有误

自测规则和提交规则不同

自测时,需要多组输入,以"ENDOFINPUT"为结尾

而提交时,则仅需输入一组,以"END"为结尾

另外注意一点:C语言如何读取一行数据,可采用fgets函数,流设置为stdin

且fgets会在字符串结束前,也读取一行末尾的'\n',要得到完整一行的字符串必须要将其去掉

#include <stdio.h>
#include <string.h>
#define MAX 201
const char Trans[]="VWXYZABCDEFGHIJKLMNOPQRSTU";

int main()
{
    const char START[]="START",
               END[]="END",
               ENDOFINPUT[]="ENDOFINPUT";
    
    char CArr[MAX]={0};
    fgets(CArr,MAX,stdin);
    //注意,fgets会把本行的最后一个换行符读入
    CArr[strlen(CArr)-1]='\0';
    while(strcmp(CArr,END))
    //while(strcmp(CArr,ENDOFINPUT))
    //while这样写才能通过测试
    {
        if(strcmp(CArr, END)&&strcmp(START, CArr))
        {
            int L=strlen(CArr);
            for(int i=0;i<L;i++)
                if(CArr[i]<='Z'&&CArr[i]>='A') CArr[i]=Trans[CArr[i]-'A'];
            puts(CArr);
        }
        fgets(CArr,MAX,stdin);
        CArr[strlen(CArr)-1]='\0';
    }
    
    return 0;
}
王道机试指南刷题 文章被收录于专栏

计划刷完这本书

全部评论
谢谢题解!我是说我测了半天跟例子一样,结果是自测规则和提交规则不同。
点赞 回复 分享
发布于 2022-02-10 18:56

相关推荐

5 收藏 评论
分享
牛客网
牛客企业服务