Вы можете создать массив флагов, по одному для каждого возможного значения символа.При первом обнаружении определенного значения символа установите флаг.В следующий раз, когда вы встретите это значение, будет установлен флаг, указывающий, что вы можете удалить этот символ.
По строкам (не проверено):
int flags[1 << CHAR_BIT];
memset(flags, 0, sizeof(flags));
j = 0;
for (i = 0; i < strlen(erros); i++)
{
erros[j] = erros[i]; // Always copy, it's simpler
if (!flags[erros[i]])
{
j++;
}
flags[erros[i]] = 1; // Always set the flag, it's simpler
}
erros[j] = '\0';
ПримечаниеВы забыли установить терминатор NULL в вашей строке.