char* 转成16进制字符
时间: 2024-11-27 22:19:54 浏览: 4
unsigned char数组转成string 用16进制表示
`char*` 是 C/C++ 中的一种指针类型,通常用于指向字符数组或单个字符。如果你想将一个 `char*` 指向的内存区域转换为16进制表示的字符串,你可以通过循环遍历该内存区域,并对每个字节进行十六进制转换。
以下是一个简单的示例,假设 `src` 是一个 `char*` 指针,它指向一个包含整数的二进制数据:
```cpp
#include <iostream>
#include <iomanip>
std::string to_hexadecimal(const char* src) {
std::string hex_str;
for (int i = 0; src[i] != '\0'; ++i) {
hex_str += std::hex << static_cast<int>(src[i]);
}
return hex_str;
}
int main() {
char bytes[] = {0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64}; // "Hello World" in ASCII
char* ptr = bytes;
std::string hex_result = to_hexadecimal(ptr);
std::cout << "Hexadecimal representation: " << hex_result << std::endl;
return 0;
}
```
运行上述代码,你会得到类似于 `"48656c6c6f20576f726c64"` 的十六进制字符串。
阅读全文