编写 函数字符串

来源:百度知道 编辑:UC知道 时间:2024/06/06 00:50:58
编写一个函数将字符串str1和str2合并,合并后的字符串按其ASCLL码值从小到大进行排序,相同的字符在新字符中只出现一次。
我已经编出来了:
# include<stdio.h>
# include<string.h>
void main()
{
char str1[100],str2[100],t;
printf("Input words:\n");
scanf("%s%s",str1,str2);
printf("str1=%s,str2=%s\n",str1,str2);
char *str=strcat(str1,str2);
printf("str=%s\n",str);
int n=strlen(str),i,j;
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
if(*(str+i)>*(str+i+1))
{
t=*(str+i);
*(str+i)=*(str+i+1);
*(str+i+1)=t;
}
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(*(str+i)==*(str+j))
*(str+j)='!';
printf("the result is:\n");
for(i=0;i<n;i++)
if(*(str+i)!='!')
printf("%c",*(str+i));
printf("\n");
}

#include<stdio.h>
#include<string.h>
void str_function(char str1[],char str2[])
//str1[]中存有结果
{
int i,j,k,len,flag;
str1=strcat(str1,str2);
len=strlen(str1);
k=0;
for(i=0;i<len;i++)
{
flag=0;
for(j=0;j<k;j++)
{
if(str1[i]==str1[j])
{
flag=1;
break;
}
}
if(!flag)
str1[k++]=str1[i];

}
str1[k]='\0';

}
void main()
{
char a[100]="afdavid";
char b[100]="season";
puts(a);
puts(b);
str_function(a,b);//,c);
puts(a);
printf("\n");
}