我正在使用 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/