为什么我这样写就测试不通过呢?
#include<stdio.h> #include<string.h> int main(){ int i=0; char str[999+1]; scanf("%s", str); i = strlen(str); for (; i >= 0; --i) { printf("%c", str[i]); /* code */ } printf("\n"); return 0; }
自问自答:好像是strlen取到了'\n'字符,所以输出的时候先输出了换行符,导致案例过不去。
匹配测试案例的代码:
#include<stdio.h> #include<string.h> int main(){ int i=0; char str[999+1]; memset(str, 0x00, sizeof(str)); // scanf("%s", str); 测试案例的字符串应该也自带'\n',所以需要减一 //fget函数会在读取到的字符串后面加'\n'所以是两个,需要减二 fgets(str,1000,stdin); i = strlen(str)-2; for (; i >= 0; --i) { printf("%c", str[i]); /* code */ } printf("\n"); return 0; }