假设我有:
char a[] = "str\0ing"
我想将此字符串复制到另一个字符数组中,
char b[].
但是,我的函数似乎正在击中终止符序列(或至少是正斜杠)并停止,因此复制到 b[] 中的唯一内容是“str”。这里到底发生了什么,我该如何解决这个问题?
我正在运行一个简单的 For 循环,格式为 b[i] == a[i]。谢谢。
编辑:我很抱歉不清楚,这是我在这里的第一篇文章。这是我当前的代码:
int copyStringN(char * in, char * out, int n) {
int i;
if (!in || !out) return -1;
for (i = 0; i < n; i++) {
*out++ = *in++;
}
*out= '\0';
return 0;
}
int main() {
#define N 8
char a[] = "th\0ing";
char b[N];
int err;
err = copyStringN(a, b, N);
assert (!err);
printf("%s\n", b);
return 0;
}
限制是它必须能够打印 "\0" 如果它存在,所以我不能简单地在字符串中添加另一个反斜杠。我必须以某种方式对我的函数进行编码,以将此字符序列解释为显式字符而不是终止符。