删除字符串中的所有重复字符

找了很多,只有删除重复字符,但是都保留了一个,想来想去都想不通怎么删除所有重复的,有没有人帮帮我
c语言或者c++的,

删除所有重复的,意思本来就是保留一个。

供参考:

#include <stdio.h>
int main()
{
    int c[256] = { 0 }, i, k;
    char str[1024];
    gets(str);
    for (i = 0, k = 0; str[i]; i++)
    {
        if (c[str[i]] == 0){
            str[k++] = str[i];
            c[str[i]]++;
        }
    }
    str[k] = '\0';
    puts(str);
    return 0;
}