#include <stdio.h> #include <stdint.h> void remove_duplicates(char *str) { int seen[256] = { 0 }; int i = 0; while (str[i] != '\0') { if (seen[str[i]]) { // shift rest of string downwards int insert = i; int lead = i + 1; while (str[lead] != '\0') { if (!seen[str[lead]]) { str[insert++] = str[lead++]; } else { lead++; } } str[insert] = '\0'; } seen[str[i]]++; i++; } } int main() { char str[101]; fgets(str, sizeof(str), stdin); // Remove newline uint8_t i = 0; while (str[i]) { if (str[i] == '\n') { str[i] = '\0'; break; } i++; } remove_duplicates(str); printf("%s", str); return 0; }
Test Cases
Test Results
Input
programming
Expected Output
progamin