How can I bitwise XOR two C char arrays?
I feel silly for not being able to figure this out, but I am lost. I am trying to XOR two C strings. #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; } My output is: $ ./a.out PlainText One: PlainOne PlainText Two: PlainTwo one^two: Why doesn't the xor array read as anything?