问题描述:
编写一个函数 reverse_string(char * string)
实现:将参数字符串中的字符反向排列。
要求:不能使用C函数库中的字符串操作函数。
非递归实现:
#include "stdio.h"
int my_strlen(char *n)//自定义函数实现strlen函数功能
{
int count=0;
while((*n)!='\0')//计算字符串长度
{
count++;
n++;
}
return count;
}
void reverse_string(char * string)
{
char temp;
int left=0;int right=my_strlen(string)-1;
if(left<=right)
{
temp=string[left];
string[left]=string[right];
string[right]=temp;
left++;
right--;
}
printf("%s",string);
}
int main()
{
char n[]="abcd";
reverse_string(n);
return 0;
}
递归实现:
#include "stdio.h"
void reverse_string(char * string)
{
if(*(string++)!='\0')
{
reverse_string(string);
}
printf("%c",*(string-1));
}
int main()
{
char n[]="abcd";
reverse_string(n);
return 0;
}
运行结果: