如何将字符附加到字符串?

时间:2014-08-13 17:34:38

标签: c pointers char

这可能吗?也就是说,将一个char附加到char *?

char temp[10] = "";

while (isalnum(*x)) {
    strcat(temp, *x);
    x++;
}

enqueue(&head,temp);

我有一个char *作为变量的队列。然后我有一个char *被读取,如果它指向的char是字母数字,我希望它附加到temp。之后,将它排队。

3 个答案:

答案 0 :(得分:4)

由于x似乎是char *,您可以使用strncat()

while (isalnum(*x)) {
    if (bytes_left_in_temp > 0) {
        strncat(temp, x, 1);
    }
}

更有效率,您可以计算x中的项目如何被复制,然后传递计数而不是1。

int k = 0;
while (isalnum(x[k])) {
    if (k >= bytes_left_in_temp) break;
    ++k;
}
strncat(temp, x, k);

但是,如上所示,您应该确保注意不要追溯temp可以容纳的内容。

答案 1 :(得分:3)

假设temp总是足够大:

char temp[10] = "";
char *p = temp;

while (isalnum(*x)) {
    *p++ = *x++;
}

*p = '\0';
enqueue(&head,temp);

如果您不确定temp是否总是足够大,请添加一些检查(这不应该是 详细解释)。

答案 2 :(得分:0)

如果x是char *,那么你可以使用strcat(temp,x)