算法入门之说反话c++

为什么同样的代码(书上的
我用vs和dev运行出来的不同

#include
#include
int main()
{
    char str[90];
    gets(str);
    int len=strlen(str),r=0,h=0;
    char ans[90][90];
    for(int i=0;iif(str[i]!=' '){
            ans[r][h++]=str[i];
        }
        else{
            ans[r][h]='\0';
            r++;
            h=0;
        }
    }
    for(int i=r;i>=0;i--){
        printf("%s",ans[i]);
        if(i>0) printf(" ");
    }
    return 0;
}

vs运行出来是

img


dev运行出来是

img


而且我比较疑惑的是如果字符串末尾没\0会中文乱码,但是明明都有\0啊

关键代码没粘全,重新粘