在C中将字符串添加到字符指针

时间:2011-10-11 14:36:57

标签: c string char

我想在char指针中添加一个字符串,我该怎么办?

例如:

char指针是char * process_name; 我有一个名为second的char数组。它包含几个字符。

我想将第二个复制到process_name。

4 个答案:

答案 0 :(得分:3)

如果您知道process_name指向的缓冲区大小,则可以使用strncpy()。

char * strncpy ( char * destination, const char * source, size_t num );

例如:

strncpy( process_name, second, process_name_size );
process_name[ process_name_size - 1 ] = '\0';

答案 1 :(得分:2)

您可以使用'strcat'或'strncat'来连接两个字符串。 但是你的process_name缓冲区必须足够大才能包含这两个字符串。 strcat会为你处理\ 0字节,但我仍然建议你使用固定长度的strncat。

 char *strcat(char *restrict s1, const char *restrict s2);
 char *strncat(char *restrict s1, const char *restrict s2, size_t n);

示例用法是:

process_name = realloc(process_name, strlen(process_name) + strlen(second));
strncat(process_name, second, strlen(second));

这可能不是最好的例子,但它应该显示大方向。

答案 2 :(得分:1)

严格来说,你不能'添加字符串'到char指针。

可以将字符串添加到由char指针指向的缓冲区 IF 缓冲区中有足够的已分配空间(加上一个用于终止{{1} })使用标准库调用,例如'\0' [取决于您的精确要求,插入与追加等]。

答案 3 :(得分:0)

我用strdup()函数解决了这个问题。