【发布时间】:2013-12-02 01:12:12
【问题描述】:
我正在使用包含分隔字符串的字符流(不可搜索):例如abc|def|ghijkd 带有分隔符 |。因此,当我解析一个标记时,我不断将流的字符添加到一个字符串中,直到找到一个管道,然后我开始一个新的字符串。
我不想在每次添加新字符时复制正在构建的字符串。
构建先验未知长度的字符串的标准做法是什么?
我现在所做的基本上是分配一个给定大小的“块”(比如 256 个字符)并将流中的字符复制到那里。当块已满时,我增加块大小(以初始块大小为步长),分配一个新块,将旧块复制到新位置,释放旧块,将字符添加到新块的末尾等,冲洗并重复。这对我来说有点像大锤。
【问题讨论】:
-
你可以使用std::string吗?这会很容易。
-
@edtheprogrammerguy 这在我看来就像 C++。你确定这是 C 吗?
-
std::string在 C 中不可用