C语言递归实现字符串逆序的方式详解

 更新时间:2021年10月12日 11:06:29   作者:冷雨GieGie  
这篇文章主要介绍了C语言递归实现字符串逆序的方式详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

C语言实现字符串逆序,具体内容如下所示:

一、迭代的方式实现

贴上代码:迭代的方式实现

'//字符串逆序:不可用字符串操作函数'
#include <stdio.h>
void swap(char* ch1, char* ch2)             '//交换两个字符串'
{
	char tmp = *ch1;
	*ch1 = *ch2;
	*ch2 = tmp;
}
int my_strlen(char* str)                     '//实现计算字符串字节数'
{
	int count = 0;
	while (*str != '\0')
	{
		count++;
		str++;
	}
	return count;
}
void reverse_string(char* str)                '//实现字符串逆序'
{
	int left = 0;
	int right = my_strlen(str) - 1;
	while (left < right)
	{
		swap(str+left, str+right);
		left++;
		right--;
	}
}
int main() {
	char arr[] = "abcdefgh";
	reverse_string(arr);
	printf("%s\n", arr);
	return 0;
}

swap()函数还不如不定义,,这样好写一点。

在这里插入图片描述

二、递归的方式实现

贴上代码:递归,思路挺难的,重点在于熟悉递归

//递归实现字符串逆序
void reverse_string(char* str)
{
	if (*str != '\0')
	{
		char tmp = *str;
		int length = strlen(str);
		*str = *(str+ length - 1);
		*(str + length - 1) = '\0';
		reverse_string(str + 1);
		*(str + length - 1) = tmp;
	}
	
}
int main()
{
	char arr[] = "abcdefgh";
	reverse_string(arr);
	printf("%s\n", arr);
	return 0;
}

在这里插入图片描述

到此这篇关于C语言递归实现字符串逆序的文章就介绍到这了,更多相关C语言字符串逆序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言基于EasyX绘制时钟

    C语言基于EasyX绘制时钟

    这篇文章主要为大家详细介绍了C语言基于EasyX绘制时钟,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • C语言实现扫雷小游戏

    C语言实现扫雷小游戏

    这篇文章主要为大家详细介绍了C语言实现扫雷小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • 简述c++ 发展史

    简述c++ 发展史

    这篇文章主要介绍了c++ 发展的过程,帮助大家更好的了解和学习c++,感兴趣的朋友可以了解下
    2020-08-08
  • C++实现插入排序对整数数组排序

    C++实现插入排序对整数数组排序

    这篇文章主要为大家详细介绍了C++实现插入排序对整数数组排序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • C++多线程强制终止详细

    C++多线程强制终止详细

    这篇文章主要介绍了C++多线程强制终止, 实际上,没有任何语言或操作系统可以为你提供异步突然终止线程的便利,且不会警告你不要使用它们。但是下面我们再来简单看看相关内容吧
    2021-09-09
  • 如何将C++源程序改写为C语言

    如何将C++源程序改写为C语言

    C++中主要的与C的区别最大而且最常用的特性及修改方法,接下来我们一起来学习他们吧
    2021-08-08
  • C++17之std::visit的具体使用

    C++17之std::visit的具体使用

    本文主要介绍了C++17之std::visit的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • c++模拟实现string类详情

    c++模拟实现string类详情

    这篇文章主要介绍了c++模拟实现string类详情,string表示可变长的字符序列,使用string类型必须首先包含string头文件。作为标准库的一部分,string定义在命名空间std中,下面进入文章一起看看详细内容吧
    2022-01-01
  • 利用C语言实现扫雷小游戏

    利用C语言实现扫雷小游戏

    这篇文章主要为大家详细介绍了利用C语言实现扫雷小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-02-02
  • C语言实现数组的循环移位的方法示例

    C语言实现数组的循环移位的方法示例

    这篇文章主要介绍了C语言实现数组的循环移位的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08

最新评论