题目是很水的,要注意两点,一个就是字符串必须比放入的数组多一个,如这道题strlen(a)=26,sizeof(a)=27。。。
还有一点就是gets()函数可以输入空格,不能输入回车,但是s%不能输入空格,也不能输入回车
AC的代码:
#include <stdio.h> #include <string.h> char a[27] = {'V','W','X','Y','Z', 'A','B','C','D','E','F','G', 'H','I','J','K','L','M','N', 'O','P','Q','R','S','T','U'}; int main() { //freopen("test.txt","r",stdin); char Input[1000]; while(gets(Input)) { if(strcmp(Input,"ENDOFINPUT")==0) return 0; else if(strcmp(Input,"START")==0 || strcmp(Input,"END")==0) continue; for(int i=0;i<strlen(Input);i++) { if (Input[i]>=65 && Input[i]<=90) printf("%c",a[Input[i]-65]); else printf("%c",Input[i]); } printf("\n"); } return 0; }