string 转成16进制
时间: 2023-08-07 14:34:36 浏览: 120
将一个字符串转成16进制,可以将每个字符转换为对应的16进制数值,然后再将这些数值组合成一个16进制字符串。下面是一个示例代码:
```cpp
#include <iostream>
#include <string>
#include <sstream>
int main() {
std::string str = "Hello World!";
std::stringstream ss;
for (auto c : str) {
ss << std::hex << static_cast<int>(c);
}
std::string hex_str = ss.str();
std::cout << hex_str << std::endl;
return 0;
}
```
在上面的示例代码中,我们首先定义了一个字符串`str`,表示要转换的字符串。然后我们使用一个`std::stringstream`对象`ss`,将字符串中的每个字符转成16进制数值,并添加到`ss`对象中。
具体地,我们使用了`std::hex`格式控制符将输出格式设置为16进制,然后使用`static_cast<int>(c)`将字符`c`转为对应的ASCII码值,最后将这个数值添加到`ss`对象中。
最后,我们使用`ss.str()`将`ss`对象中的数据取出,并将它赋值给字符串`hex_str`。最终,我们输出`hex_str`字符串,它的值应该为字符串`str`的16进制表示。
需要注意的是,输出的16进制字符串中,每个字符之间没有空格或其他分隔符,如果需要可以在循环中添加相应的分隔符。
阅读全文