反转串
我们把“cba”称为“abc”的反转串。
下面的代码可以把buf中的字符反转。其中n表示buf中待反转的串的长度。请补充缺少的代码。
把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
void reverse_str(char* buf, int n)
{
if(n<2) return;
char tmp = buf[0];
buf[0] = buf[n-1];
buf[n-1] = tmp;
_______________________________;
}
下面的代码可以把buf中的字符反转。其中n表示buf中待反转的串的长度。请补充缺少的代码。
把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
void reverse_str(char* buf, int n)
{
if(n<2) return;
char tmp = buf[0];
buf[0] = buf[n-1];
buf[n-1] = tmp;
_______________________________;
}
利用递归把字符串的首尾交换,每次把指针+1,指向字符数组不同的地方,每次把字符数组的长度-2
参考答案:reverse_str(buf+1,n-2)
注意数组与指针的语法等价性:
buf + 1 等价 &buf[1]
reverse_str(++buf,n-2) (比较变态)
可能有许多写法,代入到源程序,看运行结果。