#include <stdio.h>
#include <string.h>
void reverse_string(char* str)
{
char tmp= *str;
*str=*(str + strlen(str)-1);
*(str + strlen(str) - 1) = '\0';
if (strlen(str + 1) >= 2)
{
reverse_string(str+1);
}
*(str + strlen(str) - 1)=tmp;
}
int main()
{
char arr[] = "abcdef";
reverse_string(arr);
printf("%s\n",arr);
return 0;
}
这是一个逆向打印字符串abcdef的程序,思想是通过_reverse_string_这个函数将首尾字符交换位置后产生一个新的数组然后打印,但是运行时出现了bug,只打印出了三个字符不知道是哪里错了。
此图片是运行结果和代码内容
```c
```