2013-05-10 93 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

相关问题