用指针+递归的方法实现一个字符串*src的逆序,保存在*dest中,如何实现
用指针+递归的方法实现一个字符串*src的逆序,保存在*dest中,怎么实现?
下面是我用数组保存的结果,如果要用指针的话,好像要用到二维的,不知道有没有高手来给我解释下?
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
void reverse(const char *src);
int count = 0;
char string[10];
int main(void)
{
const char *src = "chenqin";
reverse(src);
string[count] = '\0';
printf("逆序后的字符串为:%s\n" , string);
return 0;
}
void reverse(const char *src)
{
if(*src != '\0')
{
reverse(src+1);
string[count++] = *src;
}
}
------解决方案--------------------
//dest应该先分配好内存
void reverse(const char *src, char *dest)
{
if(*src != '\0')
{
reverse(src+1);
*dest++ = *src;
}
}
------解决方案--------------------
下面是我用数组保存的结果,如果要用指针的话,好像要用到二维的,不知道有没有高手来给我解释下?
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
void reverse(const char *src);
int count = 0;
char string[10];
int main(void)
{
const char *src = "chenqin";
reverse(src);
string[count] = '\0';
printf("逆序后的字符串为:%s\n" , string);
return 0;
}
void reverse(const char *src)
{
if(*src != '\0')
{
reverse(src+1);
string[count++] = *src;
}
}
------解决方案--------------------
//dest应该先分配好内存
void reverse(const char *src, char *dest)
{
if(*src != '\0')
{
reverse(src+1);
*dest++ = *src;
}
}
------解决方案--------------------