7-3 删除重复字符 (10分)
本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。
输入格式:
输入是一个以回车结束的非空字符串(少于80个字符)。
输出格式:
输出去重排序后的结果字符串。
输入样例:
ad2f3adjfeainzzzv
输出样例:
23adefijnvz
方法1:
#include<iostream>
#include<cstring>
using namespace std;
int main(){
char a[200];
cin.get(a,80);
bool t[200];
memset(t,0,sizeof(t));
for(int i;a[i]!='\0';i++)
{
t[a[i]]=true;
}
for(int i=0;i<128;i++)
{
if(t[i]==true)
cout<<(char)i;
}
return 0;
}
方法2:
方法3:
#include<stdio.h>
#include<iostream>
#include<math.h>
#include<string.h>
using namespace std;
int main()
{
int n,j,t,i,l;
char a[100];
cin.getline(a,100);
int len=strlen(a);
for(i=0;a[i]!='\0';i++)
{
for(j=i;a[j]!='\0';j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(i=0;i<len-1;i++)
{
while(a[i]==a[i+1])
{
for(int j=i+1;j<len-1;j++)
a[j]=a[j+1];
a[len-1]='\0';
len--;
}
}
puts(a);
return 0;
}