将十六进制字符串转换为unsigned char数组的方法如下:
std::stoi
函数或C语言中的strtol
函数。static_cast<unsigned char>(decimal_value)
来将十进制数值转换为unsigned char类型。以下是一个示例C++代码,演示如何将十六进制字符串转换为unsigned char数组:
#include <iostream>
#include <string>
#include <vector>
std::vector<unsigned char> hexStringToUnsignedCharArray(const std::string& hexString) {
std::vector<unsigned char> result;
// 检查十六进制字符串长度是否为偶数
if (hexString.length() % 2 != 0) {
std::cout << "Invalid hex string length." << std::endl;
return result;
}
// 将十六进制字符串转换为unsigned char数组
for (size_t i = 0; i < hexString.length(); i += 2) {
std::string byteString = hexString.substr(i, 2);
int decimalValue = std::stoi(byteString, nullptr, 16);
unsigned char byteValue = static_cast<unsigned char>(decimalValue);
result.push_back(byteValue);
}
return result;
}
int main() {
std::string hexString = "48656C6C6F20576F726C64"; // 十六进制字符串
std::vector<unsigned char> byteArray = hexStringToUnsignedCharArray(hexString);
// 打印unsigned char数组中的值
for (const auto& byte : byteArray) {
std::cout << static_cast<int>(byte) << " ";
}
std::cout << std::endl;
return 0;
}
此代码将十六进制字符串"48656C6C6F20576F726C64"转换为unsigned char数组,并打印数组中的值。输出结果为"72 101 108 108 111 32 87 111 114 108 100",对应ASCII码中的字符。
腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅供参考,具体产品选择应根据实际需求和情况进行评估。
领取专属 10元无门槛券
手把手带您无忧上云