这个题的trick很多,不符合题意的情况很多,费了大半天才把情况全部弄全。仔细一点,多找几个样例,这题好说。
#include <stdio.h> #include <string.h> int main() { char z[101]; while (scanf("%s",&z)!=EOF) { int flag=1,y=0,o; o=strlen(z); if (z[o-1]=='_') { printf("Error"); } else { char s[101]={0}; for (int t=0;t<strlen(z);t++) if ((z[t]<'a'||z[t]>'z')&&z[t]!='_'||z[0]=='_'||(z[t]=='_'&&z[t+1]=='_')) { flag=0; printf("Error"); break; } for (int r=0;r<strlen(z);r++) { if (z[r]=='_') { s[y++]=z[r+1]-32; r++; } else s[y++]=z[r]; } if (flag) { for (int c=0;c<strlen(s);c++) printf("%c",s[c]); } } printf("\n"); } return 0; }