为什么我这样写就测试不通过呢?

#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;
}