按位异或比对字符串的原理是什么?
这是一段利用按位异或比对的例子,讲的是先输入一个数n,再输入(2n-1)个有7个字符组成的字符串,其中(n-1)对是相同,在输入完成后程序就可以输出唯一一个没配对的字符串,麻烦大家能不能结合这个例子给我讲讲按位异或比对字符串的原理,多谢了。#include<stdio.h>
#include<string.h>
int main ()
{
int sum[8],n,i;
char s[8];
while (scanf("%d",&n)!=EOF)
{
getchar();
memset(sum,0,sizeof(sum));
gets(s);
n=n*2-2;
for (i=0;i<7;i++)
sum[i]=s[i];
while (n--)
{
gets(s);
for (i=0;i<7;i++)
sum[i]^=s[i];
}
for (i=0;i<7;i++)
printf("%c",sum[i]);
printf("\n");
}
return 0;
}