C 为什么循环不能在我的代码中终止?

C 为什么循环不能在我的代码中终止?,c,C,这是一个反向字符串代码,但循环无法终止并继续获取输入 我怎样才能终止它 现在,下面有几点答案代码 基本上,您是用输入手工打印,而问题是多行输入的状态。因此,首先必须获取所有输入,然后显示输出 您的原始代码并没有像您所说的那样持续接受输入。问题说最后一个字符串是空字符串。在空字符串中按enter键,上述代码将终止 记住最后一个输入字符串应该为空,这是终止条件 样本输出 pooL maet olleH emocleW 添加str[0]='\0';在它完成之前。这是因为在单击enter之后,要终止循

这是一个反向字符串代码,但循环无法终止并继续获取输入

我怎样才能终止它


现在,下面有几点答案代码

基本上,您是用输入手工打印,而问题是多行输入的状态。因此,首先必须获取所有输入,然后显示输出

您的原始代码并没有像您所说的那样持续接受输入。问题说最后一个字符串是空字符串。在空字符串中按enter键,上述代码将终止

记住最后一个输入字符串应该为空,这是终止条件

样本输出

pooL maet olleH
emocleW

添加str[0]='\0';在它完成之前。这是因为在单击enter之后,要终止循环并退出循环。

您应该检查gets的返回值。如果失败,str将不受影响,所以不是null。请详细说明一下。您已经尝试过了,但得到了相同的错误。在代码末尾添加}后,如果输入空行,则无法正确使用get。请发表一篇文章。这能解决你的问题吗?
#include <stdio.h>
#include <string.h>
#define len 100
int main() {
   char str[len];
   int i,lenh;
   do{
       str[0]='\0';
       gets(str);
       lenh=strlen(str);
       for(i=lenh-1;i>=0;i--)
          {
             printf("%c",str[i]);
          }
      printf("\n");
      }while(str[0]!='\0');
      return 0;
    }
Hello team Loop
Welcome

pooL maet olleH
emocleW
#include <stdio.h>
#include <string.h>
#define len 100
int main() {
   char str[len];
   int i,lenh;
   do{
       str[0]='\0';
       gets(str);
       lenh=strlen(str);
       for(i=lenh-1;i>=0;i--)
          {
             printf("%c",str[i]);
          }
      printf("\n");
      }while(str[0]!='\0');
      return 0;
    }