【发布时间】:2015-08-07 05:22:07
【问题描述】:
您好,我想知道 C 中是否有一种方法可以要求用户输入文本,只要他愿意,然后根据他输入的字符使用 malloc() 函数。
【问题讨论】:
-
这些字符会去哪里,以便 C 之后可以计算它们?您需要 malloc 内存以保存字符串,以便您可以计算它...例如这是鸡/蛋的问题。
-
要支持任意长的输入,您需要一个无限的临时缓冲区来保存它,同时等待它结束。所以典型的解决方案是要么通过使用固定大小的缓冲区来限制输入的长度,要么在扩展缓冲区(或创建新的缓冲区,例如,作为链表)时以增量方式读取。
-
如果您的系统支持它:
getline()正是这样做的。否则,使用相同的原型并编写函数:ssize_t getline(char **linep, size_t *linecapp, FILE *stream); -
使用标准 C,您需要编写一个函数来循环分配空间、读取一些字符、分配更多空间等等。
标签: c string text malloc character