本题测试点有误
自测规则和提交规则不同
自测时,需要多组输入,以"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;
}