字符串逆置的两种递归写法

Posted ~千里之行,始于足下~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串逆置的两种递归写法相关的知识,希望对你有一定的参考价值。

字符串逆置的两种递归写法:

#include<stdio.h>
#include<Windows.h>
#include<string.h>

void mySwap(char * ch1, char * ch2)
{
	*ch1 ^= *ch2;
	*ch2 ^= *ch1;
	*ch1 ^= *ch2;
}
void reverseString2(char * str, int start, int end)
{
	if (start >= end) return;
	mySwap(&str[start++], &str[end--]);
	reverseString2(str, start, end);

}
void reverseString1(char * str)
{
	int len = strlen(str);
	char temp = *str;
	*str = *(str + len - 1);
	*(str+len-1) = '\\0';
	if (strlen(str + 1) >= 2)
	{
		reverseString1(str + 1);
	}
	*(str+len-1) = temp;
	
}
int main()
{
	//char * str = "hello";这样写内容不允许修改,
	//它开辟在字符串常量区
	char str[] = "hello";
	int start = 0;
	int end = strlen(str) - 1;
	//reverseString2(str, start, end);
	reverseString1(str);
	printf("%s\\n", str);
	system("pause");
	return 0;
}

具体参考该篇博客

以上是关于字符串逆置的两种递归写法的主要内容,如果未能解决你的问题,请参考以下文章

单链表的逆置使用递归算法出现-842150451这个值,请求高手予以解决。。

单链表的逆置使用递归算法出现-842150451这个值,请求高手予以解决。。

ajax返回json对象的两种写法

为未来元素添加点击事件的两种写法

队列练习之Example005-Q 是一个队列,S 是一个空栈,实现将队列中的元素逆置的算法

Linux驱动实践:你知道字符设备驱动程序的两种写法吗?