#include <stdio.h>
int main(void)
{
char s1[256] , s2[256] ;
int d[256] , i , j , k , m , n ;
printf("input first string : ") ;
gets(s1) ;
printf("input first string : ") ;
gets(s2) ;
for(i = 0 ; i < 256 ; i ++) d[i] = 0 ; // 开关数组每个元素初始化为 0
for(i = 0 ; s1[i] ; i ++) d[s1[i]] = 1 ; // 为 s1 中的每一个字符打开开关
for(i = 0 ; s2[i] ; i ++) d[s2[i]] = d[s2[i]] ? 0 : 1 ; // 为 s2 中的每一个字符打开开关,如果这个字符开关已经打开,那就将它关闭
for(i = j = 0 ; s1[i] ; i ++) if(d[s1[i]]) s1[j ++] = s1[i] ; // 根据字符开关重建 s1
s1[j] = '\0' ;
for(i = j = 0 ; s2[i] ; i ++) if(d[s2[i]]) s2[j ++] = s2[i] ; // 根据字符开关重建 s2
s2[j] = '\0' ;
printf("%s\n" , s1) ;
printf("%s\n" , s2) ;
}
编译、运行实况:D:\[00.Exerciese.2022]\C>g++ -o x x.c
D:\[00.Exerciese.2022]\C>x
input first string : ABCXYZDEFG
input first string : abcXYZdefg
ABCDEFG
abcdefg
D:\[00.Exerciese.2022]\C>
|