gpt4 book ai didi

c - 在 C 中处理具有长度的字符串

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

在 C(不是 C++)中,我们可以考虑几种处理字符串及其长度的方法:

  • 仅依赖空终止字符 (\0):我们假设字符串不包含 \0。将字符串存储到 char 数组并在末尾附加 \0。当我们需要它的大小时,使用像 strlen() 这样的函数。

  • 将字符和长度存储到struct中:

    typedef struct _String {
    字符*数据;
    整数大小;
    } 字符串;

  • 使用另一个变量来存储长度:例如,

    字符名称[] = "你好";
    int name_size = 5;
    some_func(名称, name_size, ...);

就我个人而言,我更喜欢使用第二种方法,因为

  • 它可以覆盖一些在中间包含\0的“怪异”字符串。

  • 我们可以实现string_new()string_del()string_getitem()等函数来编写一些“类似 OOP”的代码。

  • 我们不需要两个(或更多)变量一起处理字符串及其长度。

我的问题是:在 C 中处理字符串最常用的方法是什么? (特别是:当我们必须使用大量字符串时(例如编写解释器))

谢谢。

最佳答案

What is the most-used way to handle strings in C?

毫无疑问,到目前为止最常见的方法是简单地依赖空终止。

这是“最佳”方式吗?可能不会。就执行速度和程序设计而言,使用自定义字符串库可能是“最佳”方式。不利的一面是您必须拖拽该库,因为 C 没有标准甚至事实上的标准字符串库。

关于c - 在 C 中处理具有长度的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43777777/

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