将一个字符串逆序输出

将输入的一个字符串逆序输出。例如,输入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)的求解过程如下图所示:
在这里插入图片描述

  • 20
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值