gpt4 book ai didi

c - 将字符串构建为链表

转载 作者:行者123 更新时间:2023-12-04 05:21:52 25 4
gpt4 key购买 nike

如果我试图扫描 的字符串未知长度 , 一次扫描输入一个字符并构建一个字符链表来创建字符串是否是一种好方法?我目前面临的唯一问题是我不确定如何一次处理一个字符的字符串而不要求用户一次输入一个字符,这是不合理的。有没有更好的方法?我想避免为了容纳大多数字符串而分配任意大的字符数组。

最佳答案

在我的建议中,拥有一个字符链表将是一个非常糟糕的主意,因为它会为单个字符串消耗太多内存。

相反,您分配一个标称大小的缓冲区(比如 128 字节)并继续读取字符。一旦你觉得缓冲区快满了,分配另一个两倍于当前大小的缓冲区并将第一个缓冲区的内容复制到第二个缓冲区,释放第一个缓冲区。像这样,您可以继续直到您的字符串被完全读取。

此外,在我编写或看过的大多数程序中,都会保持字符串大小的上限,如果输入的字符串似乎超出了大小,程序将返回错误。字符串大小的上限是根据应用程序上下文确定的。例如:如果您正在阅读的字符串是一个名称,它通常不能超过 32 个(或某个 x 值)字符,如果是,则该名称将被截断以适合缓冲区。通过这种方式,缓冲区可以第一次分配到上限大小。

这只是一个想法。除了链表之外,可能还有许多其他方法可以解决这个问题。

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

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