我有一个函数,它要求参数的类型为“unsigned char”。
如果我使用:
unsigned char x[8] = "a\0ab-cd";
并将这个“x”作为参数传递给函数调用,我得到了想要的结果。
但是,我得到的输入是 RWCString,而不是 char 类型变量。
就我而言,我有:
RWCString a1 = "a";
RWCString b1 = "ab-cd";
我尝试使用 :
连接它RWCString final = a1 + "\0" + b1;
然后尝试在函数调用中使用转换作为 (unsigned char*) final.data();
但是,这会为调用的函数产生不同的结果。
我在这里做错了什么?
最佳答案
在执行 a1 + "\0"操作时,SourcePro 将 "\0"计算为长度为 0 的字符串,因此只返回 a1。
+= operator 的文档特别指出,该运算符不支持嵌入空值的字符串。
关于C++ 字符串到字符的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19214320/