c - 如何在 EOF 之前读取无限字符串并将它们放入 C 中的 char 数组?

标签 c arrays

例如,用户输入了 3 行条目,我想将它们拆分为一个单词并将它们存储在 char 数组中。

条目:

  Banana apple kiwi cherry\n
  horse car blue jacket\n
  bla bla bla  ^d

条目可能包含更多或更少的行。我不知道条目中有多少个字。我只知道条目以 EOF 结尾,我需要将所有单词存储在一个数组中。你能帮帮我吗?

最佳答案

#include <stdio.h>
#include <stdlib.h>


int main(){
    char *big=malloc(256);
    int c; long n=0,t=255;
    printf("Enter something very long: ");
    while ((c=getchar())!=EOF) {
        if (n>=t) {
            big=realloc(big,t+256);
            t+=256;
        }
        big[n]=c; ++n;
    }
    big[n]='\0';
    puts(big); // using puts as it's faster than printf
    // or printf("%s",big);
    free(big);
    return 0;
}

这对我有用。

关于c - 如何在 EOF 之前读取无限字符串并将它们放入 C 中的 char 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29101965/

相关文章:

arrays - Julia:为什么需要在 reshape 数组后收集输出?

c - 在TI cc26xx中预留闪存空间

c++ - 逗号运算符和 void 表达式

c - 使用指向 struct C 的指针分配数组并返回该数组

ios - 方法在操作中复制数组中的项目

c - 指向整数数组和普通整数数组的指针

javascript - 如何求数组中除0之外的最小值?

c - SSE 并行化

从文本文件创建链接列表

ruby-on-rails - 返回数组中匹配元素的列表索引