C Program to Remove All Duplicate Character in a String

Write a C Program to Remove All Duplicate Character in a String with example.

C Program to Remove All Duplicate Character in a String Example 1

This program allows the user to enter a string (or character array), and a character value. Next, it will find and remove all duplicate characters inside a string.

/* C Program to Remove All Duplicate Character in a String */
 
#include <stdio.h>
#include <string.h>
 
int main()
{
  	char str[100];
  	int i, j, k;
 
  	printf("\n Please Enter any String :  ");
  	gets(str);
  	 	
  	for(i = 0; i < strlen(str); i++)
  	{
  		for(j = i + 1; str[j] != '\0'; j++)
  		{
  			if(str[j] == str[i])  
			{
  				for(k = j; str[k] != '\0'; k++)
				{
					str[k] = str[k + 1];
				}
 			}
		}
	}
	
	printf("\n The Final String after Removing All Duplicates = %s ", str);
	
  	return 0;
}
C Program to Remove All Duplicate Character in a String 1

Here, we used For Loop to iterate every character in a String, and remove all the duplicate characters in it.

for(i = 0; i < strlen(str); i++)
{
	for(j = i + 1; str[j] != '\0'; j++)
	{
		if(str[j] == str[i])  
		{
			for(k = j; str[k] != '\0'; k++)
			{
				str[k] = str[k + 1];
			}
		}
	}
}

str[] = helloh
ch = l

First For Loop – First Iteration: for(i = 0; i < strlen(str) ; i++)
The condition is True because 0 < 6.
Next, it will enter into Second For Loop

Second For Loop – First Iteration: for(j = i + 1; str[j] != ‘\0’; j++)
=> for(j = 1; e != ‘\0’; 1++)

Within the C Programming For Loop, we used If statement to check whether the str[1] is equal to str[0]

if(str[j] == str[i]) => if(e == h)

The above condition is false. So, i will increment.

Second For Loop – Second Iteration: for(j = 2; l != ‘\0’; 2++)

if(str[j] == str[i]) => if(l == h) – condition is false. So, i will increment.

Second For Loop – Third Iteration: for(j = 3; l != ‘\0’; 3++)

if(str[j] == str[i]) => if(l == h) – condition is false. So, i incremented.

Second For Loop – Fourth Iteration: for(j = 4; o != ‘\0’; 4++)
if(str[j] == str[i]) => if(o == h) – condition is false. So, i will increment.

Second For Loop – Fifth Iteration: for(j = 5; h != ‘\0’; 5++)

if(str[j] == str[i]) => if(h == h)

The above condition is True. So, it will enter into third For Loop

Third For Loop – First Iteration: for(k = j; str[k] != ‘\0’; k++)
=> for(k = 5; str[5] != ‘\0’; 5++)
str[k] = str[k + 1];
str[k] = ‘\0’

Third For Loop – Second Iteration: for(k = 6; ‘\0’ != ‘\0’; 6++)
Condition fails. So, it will exit from the Third For Loop.

Do the same for remaining iterations.

At last, we used the printf statement to print the final string

printf("\n The Final String after Removing All Duplicates = %s ", str);

C Program to Remove All Duplicate Character in a String Example 2

This program is the same as above. Here, we just replaced the For Loop with While Loop.

/* C Program to Remove All Duplicate Character in a String */
 
#include <stdio.h>
#include <string.h>
 
int main()
{
  	char str[100];
  	int i, j, k;
  	i = 0;
 
  	printf("\n Please Enter any String :  ");
  	gets(str);
  	 	
  	while(i < strlen(str))
  	{
  		j = i + 1;
  		
  		while(str[j] != '\0')
  		{
  			if(str[j] == str[i])  
			{
				k = j;
				
  				while(str[k] != '\0')
				{
					str[k] = str[k + 1];
					k++;
				}
 			}
 			j++;
		}
		i++;
	}
	
	printf("\n The Final String after Removing All Duplicates = %s ", str);
	
  	return 0;
}
 Please Enter any String :  tutorial gateway

 The Final String after Removing All Duplicates = tuorial gewy

C Program to Remove All Duplicate Character in a String Example 3

This program is the same as the first example, but this time we used the Functions concept to separate the logic.

/* C Program to Remove All Duplicate Character in a String */
 
#include <stdio.h>
#include <string.h>

void Remove_AllOccurrence(char *str);
 
int main()
{
  	char str[100];
 
  	printf("\n Please Enter any String :  ");
  	gets(str);
  	 	
  	Remove_AllOccurrence(str);
	
	printf("\n The Final String after Removing All Duplicates = %s ", str);
	
  	return 0;
}

void Remove_AllOccurrence(char *str)
{
	int i, j, k;
	
	for(i = 0; i < strlen(str); i++)
  	{
  		for(j = i + 1; str[j] != '\0'; j++)
  		{
  			if(str[j] == str[i])  
			{
  				for(k = j; str[k] != '\0'; k++)
				{
					str[k] = str[k + 1];
				}
 			}
		}
	}
}
 Please Enter any String :  c programming language

 The Final String after Removing All Duplicates = c progaminlue

C Program to Remove All Duplicate Character in a String Example 4

In this program we further divided the code using another function.

/* C Program to Remove All Duplicate Character in a String */
 
#include <stdio.h>
#include <string.h>

void Remove_AllDuplicates(char *str);
void Remove_AllOccurrence(char *str, const char ch, int index);
 
int main()
{
  	char str[100];
 
  	printf("\n Please Enter any String :  ");
  	gets(str);
  	 	
  	Remove_AllDuplicates(str);
	
	printf("\n The Final String after Removing All Duplicates = %s ", str);
	
  	return 0;
}
// This will remove all the Duplicates
void Remove_AllDuplicates(char *str)
{
	int i;
	
	for(i = 0; i < strlen(str); i++)
  	{
           /* Calling Remove_AllOccurrence function to remove all the occurrence 
           of this particular character */
  		Remove_AllOccurrence(str, str[i], i + 1);  		
	}
}

// This will remove all the Occurrence of any single character
void Remove_AllOccurrence(char *str, const char ch, int index)
{
	int k;
	
	while(str[index] != '\0')
  	{
		if(str[index] == ch)  
		{
  			for(k = index; str[k] != '\0'; k++)
			{
				str[k] = str[k + 1];
			}
 		}
 		index++;
	}
}
 Please Enter any String :  welcome to tutorial  gateway

 The Final String after Removing All Duplicates = welcom turia gay

Comments are closed.