c++ - 如何在 C++ 中对具有十六进制值的字符串执行按字节异或?

标签 c++ hex xor

假设我有字符串 string str = "这是一个字符串";

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

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

最佳答案

只需遍历字符串并对每个字符进行异或:

for (size_t i = 0; i < str.size(); ++i)
    str[i] ^= 0xbb;

LIVE DEMO

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

for (char &c : str)
    c ^= 0xbb;

LIVE DEMO

另见 this question .

关于c++ - 如何在 C++ 中对具有十六进制值的字符串执行按字节异或?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34865299/

相关文章:

c - 将字符串写入十六进制转换器

objective-c - 如何在 Objective-C 中对 NSData 进行按位异或?

c - 函数只工作一次 - C

go - golang中的 bool 值没有异或运算符吗?

c++ - 尝试访问字符映射时,freetype 2 库崩溃

c++ - 使用结构和类时在 C++ 中无效使用 'void'

c++ - 在 C++ 中将输出从十六进制转换为十进制

c++ - 将\x00 写入文件

c++ - 错误 : ISO C++ forbids in-class initialization of non-const static member

c++ - 哪些处理器支持 __builtin_clz?