我正在尝试将char数组传递给另一个函数,但有些字符可能是\ 0。 该数组输出两个字符串的'xor',因此\ 0的示例可以是: \ 0 ='A'^'A'
如果我例如尝试将arr [3] = {\ 0,1,2}发送到func foo:
void foo(char* c){
...
}
然后c将等于“”。
在C中执行此操作的正确方法是什么?
编辑: 我最终使用@AntonH和@Cody灰色提示解决了它,我发送了我想要复制的字符串的大小并在我的foo函数中使用它。
例如,用于在函数中连接我的字符串:
void catMsg(char* dest, char* source, int sourceSize)
{
int i,destLen;
destLen= strlen(dest) ;
for(i=0;i<sourceSize-1;i++)
dest[destLen+i] = source[i];
dest[destLen+i] = '\0';
}
答案 0 :(得分:1)
总结我和@cody-grey的答案。
null
字符串终结符仅在您将其用作字符串时才适用。
如果您将其用作char
的数组,那么它就像其他任何值一样。
为了能够使用它,您需要将数组的大小作为附加参数传递,并使用大小循环遍历数组,而不是根据任何终止符。
void foo(char* c, int size){
...
}