C++ 字符串到字符的转换

标签 c++ c rogue-wave

我有一个函数,它要求参数的类型为“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/

相关文章:

debugging - 如何在调试器中获得数据结构的良好 View ?

c++ - C++内部的继承

c++ - 用颜色填充随机区域

c++ - 哪个客户在说话?

c - 为什么我的 setenv() 包装器不起作用?

c++ - Rogue Wave 中的默认目录

c++ - 仅当元组中存在该类型时才将函数应用于元组元素

c++ - 如何使用 `requires` 和 `-> return_type` 声明成员函数

c++ - L做什么的?