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

时间:2014-11-07 13:01:21

标签: c string pointers dynamic-allocation

我正在用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)返回的字符追加到result char指针?我见过人们使用strcat函数,但是它不会工作,因为它需要两个常量的char指针,但我正在处理char *和char。在java中它会是这样的:

result += consumed_char(self);

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

1 个答案:

答案 0 :(得分:0)

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

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

如果没有,最好的办法是使用strcat并更改consumed_self功能以返回char *

话虽如此,编写一个没有基本理解C风格字符串的解析器,至少可以说是非常雄心勃勃。