UCHAR* to std::string
UCHAR* to std::string
我第一次使用 WinAPI,我有一个返回 UCHAR* 的函数,但我需要它作为 std:string,因为当我尝试将其打印为 UCHAR* 但当我这样做时,它会打印很多乱码。 必须有一些简单的方法来解决此问题。 我用谷歌搜索了这个,但我找不到任何东西。 我什至不知道 UCHAR* 是什么,尽管它似乎充当某种字符串。 我听说它是一个指向无符号字符串的指针,但我不太确定这意味着什么。
这应该有效
char temp[5];
memcpy(temp, battery_info.Chemistry, 4);
temp[4] = ' '; // add nul terminator
std::string s = temp; // convert to string
由于您的源数据不一定具有通常的 nul 终止符,因此我已将数据复制到临时 char 数组中,添加了一个 nul 终止符以确保,然后转换为 std::string。
由于该结构的成员不是以空结尾的:
std::string chemistry(battery_info.Chemistry, battery_info.Chemistry + 4);
会让你得到你想要的行为,而不必做memcpy
;
相关文章:
- cppcheck在const std::string[]上引发警告
- 将std::string传递给WriteConsole API
- 为std::string的某个索引赋值
- std中有类似find_last_of的函数,而string中没有
- 使用 std::string () const 函数启动线程或未来
- 当我们进行一些操作时,应该使用什么'std::string'或'std::stringstream'?
- 如何更改大小(std::string)
- std::string 的对象真的可以移动吗?
- SegFault 同时使用 std::string::operator+= 和函数作为参数
- 无法从 std::string 中提取C++ Unicode 符号
- std::string 构造函数如何处理固定大小的 char[]?
- 确切地说,如何解释 std::getline(stream, string) 函数在C++中填充的字符串
- C++:考虑C++ std::string 中双引号 (") 的字面含义,而不使用反斜杠 (\)
- 'int main(int, int, std::__cxx11::string, std::__cxx11::string)'只需要零或两个参数 [-Wmain]
- C++ 在列表和列表之间选择返回类型<<string>std::p air<string,string>>
- std::string, std::wstring and UTF8
- uan inplace replacement of std::string/std::wstring?
- #define Glib::string std:wstring
- 从 std::string & std::wstring 中获取 char 整数值
- BSTR转换为std::string(std::wstring),反之亦然