gpt4 book ai didi

c - 有没有人使用结构来存储字符串和长度来实现 string.h 的替换?

转载 作者:太空狗 更新时间:2023-10-29 15:53:21 26 4
gpt4 key购买 nike

在 C 标准库中,字符串是使用字符数组实现的,以空字符结束:'\0'。这样的 ASCIZ 字符串会导致效率低下,因为每次我们需要知道字符串的长度时,我们都需要遍历它来寻找 '\0'。

解决这个问题的方法是在我们创建字符串时存储它的长度,例如使用如下结构:

typedef struct cstring_ {
size_t nchars;
char chars[0];
} cstring;

有没有人制作了一个共享库来实现 string.h 函数,但使用结构而不是 char * 来传递字符串?

如果不是,是否有具体原因说明这不是一个好主意?

最佳答案

可能有几十个。看看Glib's GString例如。

关于c - 有没有人使用结构来存储字符串和长度来实现 string.h 的替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6328526/

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