use*_*996 2 c++ string casting unsigned-char
将std :: string转换为unsigned char*并返回的代码是什么?
str = "1234567891234567"
unsigned char* unsignedStr = ConvertStrToUnsignedCharPointer(str);
str1 = ConvertUnsignedCharToStr(unsignedStr);
Run Code Online (Sandbox Code Playgroud)
str并且str1必须相同而不会损失精度.
auto str1 = std::string{"1234567891234567"}; // start with string
auto chrs = str.c_str(); // get constant char* from string
auto str2 = std::string{ chrs }; // make string from char*
Run Code Online (Sandbox Code Playgroud)
无符号的字符*:
auto uchrs = reinterpret_cast<unsigned char*>(const_cast<char*>(chrs));
Run Code Online (Sandbox Code Playgroud)
使用向量而不是原始指针:
using namespace std;
auto str1 = string{"1234567891234567"};
vector<char> chars{ begin(str1), end(str1) };
vector<unsigned char> uchars;
transform(begin(str1), end(str1), back_inserter(uchars),
[](char c) { return reinterpret_cast<unsigned char>(c); });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2965 次 |
| 最近记录: |