char * cQuery追加字符串

时间:2011-01-05 19:28:38

标签: c string

我有一个String,我将其声明为

char *cQuery = "My Name Is ";

我想附加另一个字符串。在objective-c中,我会说stringByAppendingString:newString

我在Objective-C类中使用C时有点生疏。任何人都可以帮助我吗?

由于

4 个答案:

答案 0 :(得分:3)

您可以使用string.h中的strcat方法,但必须注意目标字符串的大小必须足以容纳新组合的字符串。

char destination[100];
char *cQuery = "My Name Is ";
char *anotherStr = "Peter";

strcpy(destination, cQuery);
strcat(destination, anotherStr);

答案 1 :(得分:3)

通过像这样声明字符串,你声明cQuery是一个常量字符串。

// You can change cQuery using strcat, snprintf etc.
char *cQuery = "My Name Is ";

// Error! Cannot do this.
// strcat(cQuery, "John");

如果你想要cQuery可修改,你需要创建一个具有显式大小的char数组,然后将起始内容复制到该字符串中。

char cQuery[128];

// use snprintf or strcpy to initialize
strcpy(cQuery, "My name is ");

// now you can modify cQuery by calling strcat.
strcat(cQuery, "Funny Name");

答案 2 :(得分:2)

我会使用snprintf。 (这是我最喜欢的功能之一!)

像这样:

void add_it(const char *name)
{
    char buffer[256];
    const size_t buffer_len = sizeof(buffer);

    snprintf(buffer, buffer_len, "My Name Is %s", name);
    do_something(buffer);
}

答案 3 :(得分:1)

使用strcat查看帮助here