c++ - 如何在 C++ 中将 0x70、0x61、0x73 ... 等转换为 Pas ... 等?

标签 c++ hex ascii decimal

我正在使用 MSVC++ 2010 Express,我很想知道如何转换

BYTE Key[] = {0x50,0x61,0x73,0x73,0x77,0x6F,0x72,0x64};

到“密码”我在做这件事时遇到了很多麻烦。 :( 我将使用这些知识来处理诸如...

BYTE Key[] { 0xC2, 0xB3, 0x72, 0x3C, 0xC6, 0xAE, 0xD9, 0xB5, 0x34, 0x3C, 0x53, 0xEE, 0x2F, 0x43, 0x67, 0xCE };

和其他各种变量并进行相应的转换。

我想以存储在字符中的“密码”结尾。

最佳答案

Key 是一个字节数组。例如,如果要将其存储在 string 中,则应使用其范围构造函数构造字符串,即:

string key_string(Key, Key + sizeof(Key)/sizeof(Key[0]));

或者如果您可以使用 C++11 进行编译:

string key_string(begin(Key), end(Key));

要获得 char*,我会采用 C 方式并使用 strndup:

char* key_string = strndup(Key, sizeof(Key)/sizeof(Key[0]));

但是,如果您使用的是 C++,我强烈建议您使用 string 而不是 char* 并且仅在以下情况下转换为 char const*绝对必要(例如调用 C API 时)。参见 here有充分的理由更喜欢 std::string

关于c++ - 如何在 C++ 中将 0x70、0x61、0x73 ... 等转换为 Pas ... 等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7591771/

相关文章:

c++ - 为什么在这个 ssl 写入过程中 char 数组的第一个字母被截断了?

c++ - 需要一些使用指针添加 C++ 数组的建议

c++ - 如何分析和捕获 C++ 中的双重删除和内存损坏

binary - GPS 纬度和经度(十六进制值)

Python Caesar cipher ascii 添加空格

c++ - 遍历二维数组的所有子数组

java - Java Swing 中背景的十六进制颜色是什么?

javascript - 阻止输入英语以外的任何其他字母

c - 如何在文件中用 c 打印根符号

ios - 如何将十六进制值转换为 NSString?