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