您的位置:首页 > 编程语言 > C语言/C++

字符串的逆序递归实现 C语言实现

2017-04-16 14:21 330 查看
递归实现字符串的逆序 C语言实现

首先需要明确的是栈的模型 栈是先进后出的数据结构模型 利用这一数据结构的特性来实现字符串的反转

#include"stdio.h"
#include"stdlib.h"
#include"string.h"

int reverse_string(char *from)
{
if (from == NULL) 	//判断传进来的是否是一个空的支付串
{
return -1;
}
if (*from == '\0')//判断是否到达字符串的结尾
{
return 0;
}
reverse_string(from + 1);//递归
printf("%c", *from); //利用先进后出的特性 打印结果
return 0;
}

int main(void)
{
char *source = "1234";//测试数据源
reverse_string(source);

return 0;
}

进阶版

#pragma warning(disable:4996)
#include"stdio.h"
#include"stdlib.h"
#include"string.h"

int reverse_string1(char *from, char *new_str)
{
if (from==NULL)
{
return -1;
}
if (*from == '\0')
{
return 0;
}
reverse_string1(from + 1, new_str);
strncat(new_str, from, 1);
return 0;
}

int main(void)
{
char *source = "1234";
char new_str[10] = {0};
reverse_string1(source, new_str);
printf("%s", new_str);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: