¿Cómo puedo bitwise XOR dos matrices de caracteres C?

Me siento tonto por no poder resolver esto, pero estoy perdido. Estoy tratando de XOR dos cadenas 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;
}

Mi salida es:

$ ./a.out 
PlainText One: PlainOne
PlainText Two: PlainTwo

one^two: 

¿Por qué la matriz xor no se lee como algo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta