2012-12-03 102 views
0

我想顛倒字符串存儲在數組中的順序,以便最後一個字符串成爲新數組中的第一個字符串。到目前爲止,我得到的數據和存儲在第一個數組,但我卡在那裏。我只是想扭轉字符串順序,而不是字符串本身。反向字符串列表順序

示例輸入:

here is a sample 
line two of test 

輸出:

line two of test 
here is a sample 

到目前爲止我存儲所述第一陣列中的輸入:

// Accept user input until hit EOF. 
while ((c = getc(stdin)) != EOF) { 
    if(input != NULL) { 
     int c = EOF; 
     int i = 0; 

     // Accept user input until hit EOF. 
     while ((c = getc(stdin)) != EOF) { 
      input[i++] = (char)c; 
      input[i++] = (char)c; 

      // If reached maximize size, realloc size. 
      if (c == '\n') { 
       input[i]='\0'; 
      } 

      if (i == current_size) { 
       current_size = i + len_max; 
       input = realloc(input, current_size); 
      } 
     } 

     input[i] = '\0'; 
    } 
+3

嗨,歡迎來到Stackoverflow - 你有什麼嘗試?你需要顯示一些代碼。 –

+0

「od」是什麼意思?你的意思是「訂單」? –

+0

http://mattgemmell.com/2008/12/08/what-have-you-tried/?或者,也許... http://www.mit.edu/~puzzle/resources/haveyoutried.pdf –

回答

1

假設你有char *和陣列你知道陣列的長度:

在陣列上循環,並將位置爲i的元素與位置爲n - i - 1的元素交換,其中n是數組的長度。

對於n = 10,您可以:

i = 0, n - i - 1 = 9 
i = 1, n - i - 1 = 8 
i = 2, n - i - 1 = 7 
i = 3, n - i - 1 = 6 
i = 4, n - i - 1 = 5 

記住停止當你到達n/2循環。

0

嘗試存儲在鏈接列表中。這將是更好和簡單的方式來扭轉秩序。