复制内部带有空值的字符串

时间:2011-02-14 17:43:12

标签: c string null null-terminated

我想在C(Windows)中复制一个包含空值的字符串。我需要一个函数,我将传递缓冲区长度,以便NULL字符将毫无意义。我找到了StringCbCopy函数,但它仍然在第一个NULL字符处停止。

3 个答案:

答案 0 :(得分:14)

由于您知道长度,请使用memcpy()

答案 1 :(得分:1)

以下是一些可能有用的代码:

char array1[5] = "test", array2[5];
int length = 5;
memcpy(array2, array1, length*sizeof(char));
//the sizeof() is redundant in this because each char is a byte long
//but it is useful if you are working with other datatypes
对于像这样的情况,memcpy可能会成为你最好的朋友。

答案 2 :(得分:0)

编写自己的函数来执行此操作应该非常容易。如果知道字符串的长度,只需创建一个具有指定长度的char []或char *,然后逐个复制字符。