#include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> // 字符串去重 void remove_duplicate(char* str) { int i,j,len; int index=1; char flags[256]; memset(flags,0,sizeof(flags)); if(str==NULL) return; len=strlen(str); if(len<2) return; flags[str[0]]=1; for(i=1;i<len;++i){ if(flags[str[i]]!=1){ str[index++]=str[i]; flags[str[i]]=1; } } str[index]='\0'; } void Print_duplicate(const char* str) { char *p; int i; char flags[256]; memset(flags,0,sizeof(flags)); if(str==NULL) return; p = str; while (*p!='\0') { flags[*p]+=1; p++; } for(i='a';i<='z';++i){ if(flags[i]>=2) { printf("%c",i); } } printf("\n"); } int main() { int n; char s1[1000],s2[500]; while(gets(s1)!=NULL&&gets(s2)!=NULL) { if(s1[0]!='\0'&&s2[0]!='\0') { remove_duplicate(s1);remove_duplicate(s2); //printf("%s %s ",s1,s2); strcat(s1,s2); //qsort(s1,strlen(s1),sizeof(char),cmpc); Print_duplicate(s1); //printf("%s\n",s1); } else { printf("\n"); } s1[0]='\0'; s2[0]='\0'; } //printf("Input error!\n"); return 0; } |
Double click to view unformatted code.