【C语言】利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来

在写代码之前,我们要先了解一下两个函数 getchar() 和 putchar()。

getchar() 函数

  • 函数声明: int getchar(void)
  • 函数功能: C 库函数int getchar(void)从标准输入 stdin 获取一个字符(一个无符号字符)。这等同于getc带有 stdin 作为参数。
  • 返回值: 该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。
  • 原理: 当程序调用getchar时,程序就等着用户按键。用户输入的字符被存放在键盘缓冲区中。直到用户按回车为止。当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符。getchar函数的返回值是用户输入的字符的ASCII码,若文件结尾则返回-1(EOF),且将用户输入的字符回显到屏幕。如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取。也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完后,才等待用户按键。

putchar() 函数

  • 函数声明: int putchar(int char)
  • 函数功能: 把参数 char 指定的字符(一个无符号字符)写入到标准输出 stdout 中。
  • 说明: 该函数将指定的表达式的值所对应的字符输出到标准输出终端上。表达式可以是字符型或整型,它每次只能输出一个字符。

源代码

#include<stdio.h>
#include<stdlib.h>

void reverse(int n)
{
	char next;
	if (n <= 1)
	{
		next = getchar();
		printf("\n");
		putchar(next);
	}
	else
	{
		next = getchar();
		reverse(n - 1);
		putchar(next);
	}
}

int main()
{
	reverse(5);
	system("pause");
	return 0;
}
发布了107 篇原创文章 · 获赞 0 · 访问量 2681

猜你喜欢

转载自blog.csdn.net/ZD_012/article/details/104713819