编写一个函数reverse_string(char * string)(递归实现)
实现:将参数字符串中的字符反向排列。
要求:不能使用C函数库中的字符串操作函数。
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
int my_strlen(const char *str)//const所修饰的不会被修改
{
assert(str);//断言
int count = 0;
while (*str)
{
count++;
str++;
}
return count;
}
void reverse_string(char * s)
{
char *p = s;
int len = my_strlen(p);
if (len > 0)
{
char tmp = p[0];
p[0] = p[len - 1];
p[len - 1] = '\0';
reverse_string(p + 1);//递归
p[len - 1] = tmp;
}
}
int main()
{
char str[] = "abcdef";
reverse_string(str);
printf("%s",str);
system("pause");
return 0;
}
转载于:https://blog.51cto.com/10797127/1716927