C++ 将字符串转换为 uint8_t 数组并返回
c++ convert string to uint8_t array and back
我正在尝试将字符串转换为 uint8_t
数组并返回字符串,但我没有收到相同的结果:
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;
string ByteArrayToString(const uint8_t *arr, int size) {
std::ostringstream convert;
for (int a = 0; a < size; a++) {
convert << (int)arr[a];
}
return convert.str();
}
int main(int argc, char **argv) {
string str = "10 1d8d532d463c9f8c205d0df7787669a85f93e260 ima-ng sha1:0000000000000000000000000000000000000000 boot_aggregate";
vector<uint8_t> myVector(str.begin(), str.end());
uint8_t *tmp = &myVector[0];
cout << str << endl;
cout << ByteArrayToString(tmp, (str.length()/2)) << endl;
return 0;
}
你的演员表造成了这个,删除它:
for (int a = 0; a < size; a++) {
convert << arr[a];
}
除此之外,您只转换了字符串的一半,(length()/2
)。
我正在尝试将字符串转换为 uint8_t
数组并返回字符串,但我没有收到相同的结果:
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;
string ByteArrayToString(const uint8_t *arr, int size) {
std::ostringstream convert;
for (int a = 0; a < size; a++) {
convert << (int)arr[a];
}
return convert.str();
}
int main(int argc, char **argv) {
string str = "10 1d8d532d463c9f8c205d0df7787669a85f93e260 ima-ng sha1:0000000000000000000000000000000000000000 boot_aggregate";
vector<uint8_t> myVector(str.begin(), str.end());
uint8_t *tmp = &myVector[0];
cout << str << endl;
cout << ByteArrayToString(tmp, (str.length()/2)) << endl;
return 0;
}
你的演员表造成了这个,删除它:
for (int a = 0; a < size; a++) {
convert << arr[a];
}
除此之外,您只转换了字符串的一半,(length()/2
)。