1. 程式人生 > >PTA-刪除重複字元(C語言)

PTA-刪除重複字元(C語言)

本題要求編寫程式,將給定字串去掉重複的字元後,按照字元ASCII碼順序從小到大排序後輸出。

輸入格式:
輸入是一個以回車結束的非空字串(少於80個字元)。

輸出格式:
輸出去重排序後的結果字串。

輸入樣例:
ad2f3adjfeainzzzv
輸出樣例:
23adefijnvz

#include <stdio.h>
#include<string.h>
//排序 
int sort(char num[],int n){
	char t;
	for(int i=0;i<(n-1);i++)
		for(int j=i+1;j<n;j++)
			if(num[i]>num[j]) {
				t=num[i];
				num[i]=num[j];
				num[j]=t;
			}
	for(int i=0;i<n;i++)  printf("%c",num[i]);
}
int main(){
    char num[100];
    gets(num);
    int n=strlen(num);
    //去重 
    for(int i=0;i<(n-1);i++){
    	for(int j=i+1;j<n;){
    		if(num[i]==num[j]){
    			for(int t=j;t<(n-1);t++)  num[t]=num[t+1];
    			n--;
    			j--;         //如果緊挨著的幾個字母相同會出現跳過情況,繼而漏掉重的元素,所以對j做一定的處理 
			}
			j++;
		}
	}
	sort(num,n);
	return 0;
}