我知道這個問題非常普遍,解決方案是衆所周知的。但是很長一段時間,我遇到了一個我無法弄清楚的錯誤。我試圖在C中反轉字符串。我的代碼如下:字符串翻轉錯誤
#include <stdio.h>
char *reverse(char *);
int main(void) {
char str[] = "Hello";
char *rev;
rev = reverse(str);
printf("The reversed string is %s", rev);
return 0;
}
char *reverse(char *str){
char *end = str;
char tmp;
if(str){
while(*end){
++end;
}
--end;
while(str < end){
tmp = *str;
*str++ = *end;
*end-- = tmp;
}
}
return str;
}
因此,我得到「leH」,而不是「olleH」。任何人都可以指出爲什麼?
我建議你用調試器逐步執行代碼,問題可能會很明顯。 (另外這是一個很好的練習)。 – jpw
爲什麼不使用調試器並逐步完成?你絕對應該學會使用調試器,這對於程序員來說是必須的。 – m0skit0