View Code of Problem 22

#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(scanf("%s %s",s1,s2)!=EOF)
	{
		//printf("%s %s ",s1,s2);
		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);
	}
	
    return 0;
}

Double click to view unformatted code.


Back to problem 22