将一个字符串逆序输出

将输入的一个字符串逆序输出。例如,输入abcde,则输出edcba。
用普通函数和递归函数实现。

普通函数源程序:

#include<stdio.h>
#include<string.h>
int main( )			/*该函数调用后返回的结果为int型,如果没有返回值,此时返回值类型为void*/
{
	int i;
	char str[100];			/*数组在定义时必须指明长度,以便C编译程序根据此处信息确定出数组分配存储空间的大小*/
	gets(str);					/*从键盘输入一个字符串给字符数组,形式为gets(字符数组名)*/
	for(i=0;str[i];i++)		/*找到字符串结束标志并停止循环,此时i指向字符串的结束标志‘\0’ */
	for(i--;i>0;i--)			/*逆序输出*/
		printf("%c",str[i]);
	return 0;					/*函数的返回值,为整型*/
}

用递归函数实现逆序功能:

#include<stdio.h>
void reverse(char *s)			/*传地址方式传递数据,数组名作为实参传递时,形参数组可不指明长度*/
{
	if (*s)								/*取指针s对应的元素,遇到字符串结束标志时结束递归调用*/
	{
		reverse(s + 1);				/*递归调用reverse函数,字符串首地址前移一个字符*/
		putchar(*s);					/*输出指针s所指向的字符*/
	}

}

void main()
{
	char a[256];
	gets(a);					/*从键盘输入一个字符串给字符数组,形式为gets(字符数组名)*/
	reverse(a);              /*a代表数组的首地址,也代表数组第一个元素的首地址*/     
	printf("\n");
}

例如:键盘输入字符串“Hello”到数组a时,调用递归函数reverse(a)的求解过程如下图所示:
《将一个字符串逆序输出》

    原文作者:qq_36181546
    原文地址: https://blog.csdn.net/qq_36181546/article/details/114279578
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞