gpt4 book ai didi

c - 逐个字符地构建字符串

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

我正在使用包含分隔字符串的字符流(不可搜索):例如abc|def|ghijkd 与分隔符 |。因此,当我解析一个 token 时,我不断地将流中的字符添加到一个字符串中,直到找到一个管道,然后我开始一个新的字符串。

我不想每次添加新字符时都复制正在构建的字符串。

构建先验未知长度字符串的标准做法是什么?

我现在所做的基本上是分配给定大小(例如 256 个字符)的“ block ”,然后从流中复制字符。当 block 已满时,我增加 block 大小(以初始 block 大小为步长),分配一个新 block ,将旧 block 复制到新位置,释放旧 block ,将字符添加到新 block 的末尾等,冲洗并重复。这对我来说似乎有点太过分了。

最佳答案

你所做的本质上就是realloc确实如此,除了它只会在无法放大块时复制。标准做法是每次将 block 的大小加倍。指数增长将限制所需的重新分配数量。

关于c - 逐个字符地构建字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20319368/

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