我正在研究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]);
}
答案 0 :(得分:3)
你的代码中有很多错误。
main()
原型错误,应该是int main(int argc, char *argv[]);
或等效的。删除初始int
参数不行。strs
声明为字符指针数组(没有有效大小!),您可能需要一个完整的二维字符数组,如char strs[100][32];
。有限,但管理起来更简单。strs[i] = c;
应该是strs[i][j++] = c;
。当然,您还必须尊重每个字符串的最大长度,并正确终止字符串。i
)。