c语言一个问题,不知道怎么弄

dele函数的功能:对给定的字符串,去掉重复的字符与字符串中的空格后,按照字符ASCII码顺序从小到大排序后输出。

函数接口定义:
void dele(char arr[]);
裁判测试程序样例:
#include<stdio.h>
#include"string.h"
void dele(char arr[]);
int main(void)
{
char strA[81];
gets(strA);
dele(strA);
puts(strA);
return 0;
}

/* 请在这里填写答案 */
输入样例:
abcd efg abc fH 3 2 1
结尾无空行
输出样例:
123Habcdefg


void dele(char arr[]){
    char tmp;
    int n=strlen(arr);
    for(int i=0;i<n-1;i++){
        for(int j=i+1;j<n;j++){
            if(arr[i]>arr[j]){
                tmp=arr[i];
                arr[i]=arr[j];
                arr[j]=tmp;
            }
        }
    }
    int k=0;
    for(int i=0;i<n;i++){
        if(arr[i]==' '||(i!=0&&arr[i]==arr[i-1]))continue;
        arr[k++]=arr[i];
    }
    arr[k]='\0';
}

给个思路,可以先写个循环删掉数组中的空格和重复的,之后用sqort排序