输出大写英文字母?!

本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍;若无大写英文字母则输出“Not Found”。
输入格式:
输入为一个以回车结束的字符串(少于80个字符)。
输出格式:
按照输入的顺序在一行中输出所出现过的大写英文字母,每个字母只输出一遍。若无大写英文字母则输出“Not Found”。
输入样例1:
FONTNAME and FILENAME
输出样例1:
FONTAMEIL
输入样例2:
fontname and filrname
我的代码

img


有人能帮帮忙吗,一直没改对,˃ʍ˂ 大写字母还是会重复出现,So how?

#include <stdio.h>

int main() {
    int i, j, flag = 0;
    char ch[81] = {0};
    char a[81] = {0};
    gets(ch);

    //printf("你输入的是 -> %s\n", ch);

    for ( i = 0 ; ch[i] != '\0' ; i++ ) {
        //printf("检查 Index 为 %d 的字符 %c \n", i, ch[i]);
        if ( ch[i] >= 'A' && ch[i] <= 'Z' ) {
            //printf("欲加入 Index 为 %d 的字符 %c \n", i, ch[i]);
            flag = 0;
            for ( j = 0 ; a[j] != '\0' ; j++ ) {
                if ( a[j] == ch[i] ) {
                    flag = 1 ;
                }
            }
            if ( flag == 0 ) {
                //printf("符合 加入 %c \n", a[i]);
                a[j] = ch[i];
                a[j + 1] = '\0';
            }
        } else {
            //printf( " %c:%d 不在 %c:%d - %c:%d 范围内", ch[i], ch[i], 'A', 'A', 'Z', 'Z');
        }
    }

    //printf("现在 a -> %s\n", a);

    if ( a[0] == '\0' ) {
        printf("NOT FOUND");
    } else {
        printf("%s", a);
    }
}