焦糖橙子 发表于 2021-8-6 15:53:23

递归打印字符

功能是将传入的字符串前后翻转。
输出的时候不能一次性输出字符串,什么地方错了吗?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void get_s();
void get_s()
{
        char ch;
        while((ch=getchar())!='\n')
        {
                get_s();
                printf("%c",ch);
        }
        if(ch=='\n')
        {
                printf("前后翻转后的结果:");
        }
        return;
       
}


int main(void)
{
        printf("请输入一个字符串:");
       
        get_s();
       
        putchar('\n');
        return 0;
}

tang- 发表于 2021-8-6 15:58:49

输入结束手,第八行那里,你按一次回车输出一个字符

tang- 发表于 2021-8-6 16:28:28

tang- 发表于 2021-8-6 15:58
输入结束手,第八行那里,你按一次回车输出一个字符

把while 改成 if就行了

万千只cnm 发表于 2021-8-6 16:36:14

void get_s(void)
{
      int ch;
      if( ( ch=getchar() )!='\n')
      {
         
                get_s();
            printf("%c",ch);
               
      }
      
}

焦糖橙子 发表于 2021-8-6 17:57:12

tang- 发表于 2021-8-6 15:58
输入结束手,第八行那里,你按一次回车输出一个字符

想通了,谢谢{:10_323:}

焦糖橙子 发表于 2021-8-6 17:57:44

万千只cnm 发表于 2021-8-6 16:36


{:10_302:}谢谢回复,看明白了
页: [1]
查看完整版本: 递归打印字符