我想在char指针中添加一个字符串,我该怎么办?
例如:
char指针是char * process_name; 我有一个名为second的char数组。它包含几个字符。
我想将第二个复制到process_name。
答案 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()函数解决了这个问题。