2013-05-10 99 views
1

我正在學習Brian Kerningham的'The C Programming Language'& Dennis Ritchie。如何在C中存儲字符串數組並將其打印回來?

我卡在1.9字符數組中。

我想讓用戶輸入多行文本到CMD中,然後將其存儲在字符串數組中供其他程序使用。每個新行應該作爲一個新的對象存儲在數組中。現在我想要做的就是把數組打印回CMD,這樣我就可以看到它的工作正常了,任何想法我做錯了什麼?

#include <stdio.h> 
int main(char string[]) 
{ 
    int c, i; 
    char * strs[i]; 
     for (i=0; i<5 && (c!=EOF()) && c!='\n'; i++){ 
     strs[i] = c; 
     } 
     for(i=0; i<5; ++i) 
     puts(strs[i]); 
} 

回答

3

你的代碼有很多錯誤。

  1. 您的main()原型是錯誤的,應該是int main(int argc, char *argv[]);或其他等效物。丟棄最初的int參數是不行的。你可能想要一個完整的二維字符數組,如char strs[100][32];。有限,但更易於管理。
  2. 您正在存儲字符,因此您需要跟蹤哪個字符索引是當前字符串中的當前字符。 strs[i] = c;應該是strs[i][j++] = c;之類的東西。當然,您還必須尊重每個字符串的最大長度,並正確終止字符串。
  3. 您需要轉到換行符的下一個字符串(增量爲i)。
+0

是不是另一個錯誤是變量c的未初始化值(或可能是c的垃圾值)? – vish213 2013-05-10 07:24:45

+0

基本上我懷疑這個程序中是否有任何正確的東西。 – vish213 2013-05-10 07:30:42

+0

非常感謝您的放鬆 – 2013-05-19 10:19:53

相關問題