如何在 C++ 中对字符串与十六进制值执行按字节异或?

Tim*_*ong 2 c++ hex xor

假设我有字符串 string str = "this is a string";

和一个十六进制值 int value = 0xbb;

我将如何在 C++ 中对字符串与十六进制值执行按字节异或?

Pau*_*l R 5

只需迭代字符串并对每个字符进行异或:

for (size_t i = 0; i < str.size(); ++i)
    str[i] ^= 0xbb;
Run Code Online (Sandbox Code Playgroud)

LIVE DEMO

或者在 C++11 及更高版本中可能更惯用:

for (char &c : str)
    c ^= 0xbb;
Run Code Online (Sandbox Code Playgroud)

LIVE DEMO

另请参阅这个问题