用一个字符数组来存储一个单词,然后倒叙打印的问题

为什么我这个代码运行后是一个死循环,一直让我输入单词,没有后续的打印步骤

img

推荐直接用get函数,方便多了,没那么多问题


#include<stdio.h>
#include<string.h>
#define N 40
int main()
{
    int i;
    char ch[N];
    gets(ch);
    int len = strlen(ch);
    for (i = len - 1; i >= 0; i--)
        printf("%c", ch[i]);
    printf("\n");
    return 0;
}

#include<stdio.h>
#include<string.h>
int main() 
{
    int len;
    int i,j,k; 
    char a[40];
        gets(a);
        len=strlen(a);
        j=0;
        for(i=0;i<=len;i++)
        {
             if(a[i]==' '||a[i]=='\0')
             {
                  for(k=i-1;k>=j;k--)
                      printf("%c",a[k]);
                  if(a[i]!='\0')
                        printf(" ");
                  j=i;
             }
        }
        printf("\n");
    return 0; 
}