编写一个函数reverse(char * string)(递归实现)实现:将参数字符串中的字符反向排列,不是逆序打印。
要求:不能使用c函数库中的字符串操作函数。
比如:
int my_strlen(char*str)//求字符串的长度
{
int count = 0;
while (*str != '\0')
{
count++;
str++;
}
return count;
}
void reverse(char* str)
{
char temp = *str;//1
int len = my_strlen(str);
*str = *(str + len - 1);//2
*(str + len - 1) = '\0';//3
if(my_strlen(str+1)>=2)
reverse(str + 1);//4
*(str + len - 1) = temp;//5
}
int main()
{
char arr[] = "abcdef";
reverse(arr);
printf("%s", arr);
return 0;
}
该代码的分析过程如下:

文章描述了一个使用递归方法实现字符串反转的C语言函数,不依赖于标准库函数。函数`reverse`通过交换首尾字符并递归处理子串来达到反转效果,如对abcdef的反转示例。
2783

被折叠的 条评论
为什么被折叠?



