我正在寫一個簡單的c程序,它反轉了一個字符串,從argv [1]中取出字符串。這裏是代碼:C字符串反轉
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* flip_string(char *string){
int i = strlen(string);
int j = 0;
// Doesn't really matter all I wanted was the same size string for temp.
char* temp = string;
puts("This is the original string");
puts(string);
puts("This is the \"temp\" string");
puts(temp);
for(i; i>=0; i--){
temp[j] = string[i]
if (j <= strlen(string)) {
j++;
}
}
return(temp);
}
int main(int argc, char *argv[]){
puts(flip_string(argv[1]));
printf("This is the end of the program\n");
}
這基本上就是它,程序編譯和一切,但最終不會返回臨時字符串(只是空白)。在開始時,當它等於字符串時,它會打印出臨時文件。此外,如果我在for循環中通過字符printf of temp來創建正確的臨時字符串,即字符串 - >反轉。正當我試圖將其打印到標準輸出(在for循環之後或在主文件中)時,沒有任何反應只會打印空白區域。
感謝
我也在Ubuntu論壇上寫過這篇文章,但認爲它更像是一個通用的編碼問題。 – SeahawksRdaBest
你知道'temp'和'string'指向相同的內存位置嗎? – 2013-10-27 22:21:46
不要忘記接受WhozCraig答案,這是正確的方式來做你想做的。很好,很乾淨。 – Rerito