【发布时间】:2011-07-01 15:55:18
【问题描述】:
我真的不明白最后一个while循环在做什么,有人可以解释一下吗?
void reverse(char *str) {
char * end = str;
char tmp;
if (str) {
while (*end) {
++end;
}
--end;
while (str < end) {
tmp = *str;
*str++ = *end;
*end-- = tmp;
}
}
}
有人可以帮我看一下“你好”这个例子吗?
【问题讨论】:
-
你试过在纸上画出来吗?尝试在一张纸上写出
h e l l o \0,然后遍历str和end指向的位置以及tmp在代码的每一步中包含的内容。是否有一段特定的代码让您感到困惑? -
它从两端交换字符,向中间移动...
-
很高兴看到不调用
strlen()的解决方案 -
如何在调试器中单步执行代码。
标签: c string algorithm reverse