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(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.


Back to problem 22