字符串的逆序递归实现 C语言实现
2017-04-16 14:21
330 查看
递归实现字符串的逆序 C语言实现
首先需要明确的是栈的模型 栈是先进后出的数据结构模型 利用这一数据结构的特性来实现字符串的反转
进阶版
#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;
}
首先需要明确的是栈的模型 栈是先进后出的数据结构模型 利用这一数据结构的特性来实现字符串的反转
#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;
}
相关文章推荐
- 【C语言】用递归实现字符串逆序的曲折之路
- C语言简单递归实现字符串逆序输出
- JAVA递归实现字符串逆序输出
- 求字符串长度之递归与非递归的C语言实现
- C语言非递归实现字符串逆转
- C语言递归和非递归实现字符串反转函数char *reverse(char *str)
- 【C语言】递归实现栈的逆序及排序
- 递归实现字符串逆序输出(c++和c)
- 逆序输出字符串(递归实现)
- C语言递归实现字符串翻转
- C语言递归和非递归实现字符串反转
- 递归实现:一个数的各位数字之和、n^k、字符串逆序
- c语言实现字符串逆序
- 实现C语言的拷贝函数且将复制后的字符串逆序,不能使用库函数,不能定义其他的变量。
- C语言:编写reverse_string(char * string)(递归实现)函数,将参数字符串中的字符反向排列
- C语言实现字符串拷贝并逆序的问题
- 字符串拷贝函数递归与非递归的C语言实现
- 【c语言】递归 实现n^k,求非负整数各位数字之和,逆置字符串
- 【C语言】写一个函数,实现字符串内单词逆序
- 将一个字符串逆序(用递归实现不能使用库函数)