我感到很傻,因为我无法弄清楚这个问题,我迷失了方向。我正在尝试对两个C字符串进行异或操作。
#include <stdio.h>
#include <memory.h>
#include <stdlib.h>
int main()
{
char plainone[16];
char plaintwo[16];
char xor[17];
strcpy(plainone, "PlainOne");
strcpy(plaintwo, "PlainTwo");
int i=0;
for(i=0; i<strlen(plainone);i++)
xor[i] ^= (char)(plainone[i] ^ plaintwo[i]);
printf("PlainText One: %s\nPlainText Two: %s\n\none^two: %s\n", plainone, plaintwo, xor);
return 0;
}
我的输出是:
$ ./a.out
PlainText One: PlainOne
PlainText Two: PlainTwo
one^two:
为什么异或数组没有任何含义?
xor
是垃圾,我确定你是想要直接赋值。strlen
。将长度存储在一个变量中并使用它。 - phuclv