2

我有一个函数,它需要参数为“无符号字符”类型。

如果我使用:

unsigned char x[8] = "a\0ab-cd";

并将这个'x'作为参数传递给函数调用,我得到了想要的结果。

但是,我将输入作为 RWCStrings,而不是 char 类型变量。

就我而言,我有:

RWCString a1 = "a";
RWCString b1 = "ab-cd";

我尝试使用以下方法连接它:

RWCString final = a1 + "\0" + b1;

然后尝试在函数调用中使用转换作为 (unsigned char*) final.data();

但是,这会为被调用函数产生不同的结果。

我在这里做错了什么?

4

1 回答 1

2

在执行 a1 + "\0" 操作时,SourcePro 将 "\0" 计算为长度 = 0 的字符串,因此只返回 a1。

+= 运算符的文档特别指出,该运算符不支持嵌入空值的字符串。

于 2013-10-08T10:33:40.747 回答