将cstring转16进制
时间: 2024-10-27 08:10:28 浏览: 34
CString转int转二进制
将 C++ 中的 `std::string`(通常称为 `cstring` 或 `const char*`)转换为 16 进制字符串,你可以通过迭代字符数组并将其转换为对应的十六进制数来实现。下面是一个简单的示例:
```cpp
#include <iostream>
#include <sstream>
std::string cstr_to_hex(const std::string& str) {
std::stringstream ss;
for (char c : str) {
if (c >= '0' && c <= '9') { // 数字字符
ss << std::hex << static_cast<int>(c);
} else if (c >= 'A' && c <= 'F') { // 大写英文字母
ss << std::hex << c - ('A' - 10);
} else if (c >= 'a' && c <= 'f') { // 小写英文字母
ss << std::hex << c - ('a' - 10);
} else { // 其他字符直接输出
ss << std::setfill('0') << std::hex << static_cast<int>(c);
}
}
return ss.str();
}
int main() {
const char* c_str = "Hello, World!";
std::string hex_str = cstr_to_hex(c_str);
std::cout << "Hexadecimal representation of the string is: " << hex_str << std::endl;
return 0;
}
```
这段代码会将输入的 `cstring` 转换为十六进制,并打印出来。请注意,非 ASCII 字符会被转换为其 Unicode 编码的十六进制表示。
阅读全文