文章目录
一、问题引入
编写一个函数 reverse_string(char * string)(递归实现)
实现:将参数字符串中的字符反向排列,不是逆序打印。
要求:不能使用C函数库中的字符串操作函数。
比如:
char arr[] = “abcdef”;
逆序之后数组的内容变成:fedcba
二、思路
1.逆序打印和逆序排列的区别
逆序打印
:
- 逆序打印的思路:从数组首地址开始判断,如果该地址对象不是’\0’(字符串结束标志)时,地址加一,调用自身函数,再次判断,直到地址对象为’\0’时,递推结束,接下来从最后一步依次回归执行输出语句,就形成了逆序打印。
- 逆序打印只是对数组的所有元素进行反向输出,实则数组并没有发生变化。
代码如下(示例):
#include<stdio.h>
void reverse_string(char * string) {
if (*string) {
reverse_string(string + 1);
printf("%c", *string);