将一串16进制数据"010302021d792d"存在一个16进制数组里面,C++实现
时间: 2024-12-21 11:27:56 浏览: 14
在C++中,你可以创建一个动态大小的`std::vector<char>`来存储16进制字符串。首先,你需要将字符串转换为16进制字符数组。这里是一个示例:
```cpp
#include <iostream>
#include <vector>
#include <string>
// 函数将16进制字符串转换为字符数组
std::vector<char> hexStringToByteArray(const std::string& hexStr) {
std::vector<char> byteVector;
for (size_t i = 0; i < hexStr.length(); i += 2) {
char byteChar[3] = {hexStr[i], hexStr[i+1], '\0'};
byteVector.push_back((byteChar[0] >= '0' && byteChar[0] <= '9') ? byteChar[0] - '0' : byteChar[0] - 'A' + 10);
byteVector.push_back((byteChar[1] >= '0' && byteChar[1] <= '9') ? byteChar[1] - '0' : byteChar[1] - 'A' + 10);
}
return byteVector;
}
int main() {
std::string hexStr = "010302021d792d";
std::vector<char> byteArray = hexStringToByteArray(hexStr);
// 打印数组元素检查结果
for (char c : byteArray) {
std::cout << static_cast<int>(c) << " ";
}
std::cout << std::endl;
return 0;
}
```
在这个例子中,我们遍历输入的16进制字符串,每两个字符作为一个字节处理,然后将其转换为对应的ASCII值并添加到`byteArray`中。
阅读全文