c++ 实现 多个char 做按位异或操作
以下是一个示例代码,可以实现多个char*做按位异或操作:
#include <iostream>
#include <cstring>
char* XOR(char* s1, char* s2)
{
int len1 = strlen(s1);
int len2 = strlen(s2);
if (len1 != len2) return NULL;
char* res = new char[len1 + 1];
for (int i = 0; i < len1; i++) {
res[i] = s1[i] ^ s2[i];
}
res[len1] = '\0';
return res;
}
char* XOR(char* s1, char* s2, char* s3)
{
char* res1 = XOR(s1, s2);
char* res2 = XOR(res1, s3);
delete[] res1;
return res2;
}
int main()
{
char* s1 = "abcd";
char* s2 = "efgh";
char* s3 = "ijkl";
char* res = XOR(s1, s2, s3);
std::cout << res << std::endl;
delete[] res;
return 0;
}
在这个示例代码中,我们首先定义了一个XOR函数,用于计算两个char的按位异或结果。然后,我们又定义了一个XOR函数,用于计算三个char的按位异或结果。在这个函数中,我们首先调用XOR函数计算前两个char的异或结果,然后再将这个结果与第三个char做异或操作。最后,我们在main函数中测试了这个XOR函数的使用,将三个char*做异或操作,并打印出结果。
需要注意的是,在使用完动态分配的内存后,我们需要使用delete[]释放这些内存,以避免内存泄漏
原文地址: https://www.cveoy.top/t/topic/ePTZ 著作权归作者所有。请勿转载和采集!