gpt4 book ai didi

c - 将字符串中的单个字符附加到 char 指针上

转载 作者:行者123 更新时间:2023-11-30 17:26:26 25 4
gpt4 key购买 nike

我正在用 C 语言编写一个解析器,并且我有一些如下所示的代码:

char *consume_while(parser *self, int(*test)(char)) {
char *result;
while (eof(self) && (*test)(next_char(self))) {
// append the return value from the function consumed_char(self)
// onto the "result" string defined above.
}
return result;
}

但是我对 C 的整个字符串操作方面有点陌生,那么我如何将从函数 consumed_char(self) 返回的字符附加到 结果字符指针?我见过有人使用 strcat 函数,但这不起作用,因为它需要两个常量 char 指针,但我正在处理 char* 和 char。在java中它会是这样的:

result += consumed_char(self);

C 中的等价物是什么?谢谢:)

最佳答案

在 C 中,字符串不作为类型存在,它们只是带有 null 终止字符的 char 数组。这意味着,假设您的缓冲区足够大并用零填充,它可以像这样简单:

result[(strlen(result)] = consumed_char(self);

如果没有,最好的选择是使用 strcat 并更改 consumed_self 函数以返回 char *

话虽这么说,在没有对 C 风格字符串有基本了解的情况下编写一个解析器,至少可以说,是相当雄心勃勃的。

关于c - 将字符串中的单个字符附加到 char 指针上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26801831/

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