字符串逆置的两种递归写法
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这个值,请求高手予以解决。。