如何在C中存储字符串数组并将其打印回来?

时间:2013-05-10 06:59:25

标签: c arrays visual-c++

我正在研究Brian Kerningham撰写的“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]);
 }

1 个答案:

答案 0 :(得分:3)

你的代码中有很多错误。

  1. 您的main()原型错误,应该是int main(int argc, char *argv[]);或等效的。删除初始int参数不行。
  2. 您将strs声明为字符指针数组(没有有效大小!),您可能需要一个完整的二维字符数组,如char strs[100][32];。有限,但管理起来更简单。
  3. 您正在存储字符,因此您需要跟踪当前字符串中当前字符索引的字符索引。 strs[i] = c;应该是strs[i][j++] = c;。当然,您还必须尊重每个字符串的最大长度,并正确终止字符串。
  4. 您需要在换行符上跳到下一个字符串(增量i)。