gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 02:09:18 25 4
gpt4 key购买 nike

我正在学习 Brian Kerningham 和 Dennis Ritchie 的“The C Programming Language”。

我卡在 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. 您的 main() 原型(prototype)是错误的,它应该是 int main(int argc, char *argv[]); 或类似的东西。删除初始 int 参数是不行的。
  2. 您将 strs 声明为字符指针数组(没有有效大小!),您可能需要一个完整的二维字符数组,例如 char strs[100][32 ];。有限,但更易于管理。
  3. 您正在存储字符,因此您需要跟踪当前字符串中哪个字符索引是当前索引。 strs[i] = c; 应该类似于 strs[i][j++] = c;。当然,您还必须遵守每个字符串的最大长度,并正确终止字符串。
  4. 您需要在换行符处跳转到下一个字符串(递增 i)。

关于c - 如何在 C 中存储字符串数组并将其打印回来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16476846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com