【发布时间】:2012-02-19 22:39:37
【问题描述】:
我有一个在命令行中运行的程序(C 语言),我希望它接受来自用户的任意长度的字符串。如果我使用 C++ 编程,我可能会使用字符串库中的 getline() 函数,但我似乎找不到 C 等价物。我是否只需要读取 X 长度块中的字符,如果字符串超过 X 长度,则创建一个新的更大的块并将数据复制到新块?
【问题讨论】:
-
有一个非标准的
getline可用于 POSIX 系统。除此之外,您可以使用getc和realloc自行滚动。 -
不熟悉
getline(),但不是将字符串复制到越来越大的内存块中,理想情况下您只需根据需要分配 X 长度的块,同时跟踪每个分配的块。这个 1 个或多个块的集合将代表输入字符串。
标签: c string command-line getline