C (gcc), 44 bytes
x(o,r)char*o,*r;{*o|*r?*o^=*r,x(o+1,r+1):0;}
Uses recursion, note that to print strings containing the null byte one will have to manage the strings as arrays. (See the footer of the link for an example)
LambdaBeta
- 2.8k
- 13
- 20