Tutorial Gateway

  • C
  • C#
  • Java
  • Python
  • SQL
  • MySQL
  • Js
  • BI Tools
    • Informatica
    • Talend
    • Tableau
    • Power BI
    • SSIS
    • SSRS
    • SSAS
    • MDX
    • R Tutorial
    • Alteryx
    • QlikView
  • More
    • C Programs
    • C++ Programs
    • Python Programs
    • Java Programs

C Program to Remove All Duplicate Character in a String

by suresh

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;
}

OUTPUT

C Program to Remove All Duplicate Character in a String 1

ANALYSIS

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;
}

OUTPUT

C Program to Remove All Duplicate Character in a String 2

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];
				}
 			}
		}
	}
}

OUTPUT

C Program to Remove All Duplicate Character in a String 3

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++;
	}
}

OUTPUT

C Program to Remove All Duplicate Character in a String 4

Placed Under: C Programs

  • C Hello World
  • C Add Two numbers
  • C Armstrong Number Program
  • C Convert Celsius to Fahrenheit
  • C Convert Decimal to Binary
  • C Convert Decimal to Octal
  • C Convert CM to Meter and KM
  • C Convert KM to M, CM & MM
  • C Convert Fahrenheit to Celsius
  • C Compound Interest Program
  • C Count Digits in a Number
  • C Count Notes in an Amount
  • C Cube of a Number
  • C Electricity Bill Program
  • C Factors of a Number Program
  • C Factorial of a Number Program
  • C GCD of Two Numbers
  • C Generic Root of a Number
  • C Gross Salary of an Employee
  • C Largest of Two Numbers
  • C Largest of Three numbers
  • C Last Digit Of a Number
  • C LCM of Two Numbers
  • C Leap Year program
  • C Multiplication Table program
  • C Natural Numbers from 1 to N
  • C Natural Numbers in reverse
  • C NCR Factorial of a Number
  • C Number is Divisible by 5 and 11
  • C Palindrome Program
  • C Palindrome String program
  • C Perfect Number Program
  • C Profit or Loss Program
  • C Print 1 to 100
  • C Print Prime Numbers 1 to 100
  • C Prime Number program
  • C Prime Factors of a Number
  • C Prime, Armstrong or Perfect
  • C Positive or Negative program
  • C Print Odd Numbers 1 to N
  • C Print Even Numbers 1 to N
  • C Print Integer, Char & Float
  • C Power of a Number program
  • C Product of Digits in a Number
  • C Roots of a Quadratic Equation
  • C Reverse a Number
  • C Simple Calculator Program
  • C Simple Interest
  • C Square of a Number
  • C Square Root of a Number
  • C Standard Deviation program
  • C Strong Number Program
  • C Student Grade program
  • C Sum of Odd Numbers program
  • C Sum of Even Nums program
  • C Sum of Even and Odd Nums
  • C Swap First & Last digit of Num
  • C Sum of First & Last digit Num
  • C Sum of Digits of a Number
  • C Sum of N Numbers Program
  • C Sum and Average of n Number
  • C Swap 2 Numbers
  • C Total, Avg & % of Five Subjects
  • C Quick Sort
  • C Selection Sort
  • C Insertion Sort
  • C Bubble Sort
  • C Fibonacci Series Program
  • C Nth Fibonacci number
  • C Sum of AP Series
  • C Sum of GP Series
  • C Sum of series 1³+2³+3³+….+n³
  • C Sum of series 1²+2²+3²+….+n²
  • C ASCII value of String chars
  • C Print Characters in a String
  • C Compare Two Strings
  • C Concatenate Two Strings
  • C Copy String
  • C String length program
  • C Convert String to Lowercase
  • C First Occurrence of string char
  • C First Occur of String Word
  • C Count Occur of string Char
  • C Count Alphabets, Digits & Special Chars
  • C Count Vowels & Consonants
  • C string remove all Occ of char
  • C remove 1st Occ of char in string
  • C remove last Occ char in string
  • C replace All Occ of char in string
  • C Replace last Occ of String Char
  • C Replace 1st occ char in string
  • C Reverse words Order in string
  • C Reverse a String
  • C Toggle Case of all char in string
  • C Array Arithmetic Operations
  • C Matrix Arithmetic Operations
  • C Count Frequency of array item
  • C Count Duplicate Array items
  • C Count +ve & -Ve Array items
  • C Count Even & Odd Array items
  • C Copy an Array to another
  • C Delete Duplicate Array items
  • C Delete an Element in an Array
  • C insert an Element in an Array
  • C 2nd largest Number in an Array
  • C Find Largest Array Number
  • C Find Smallest Array Number
  • C Largest & Smallest Array item
  • C Merge Two Arrays
  • C Print Unique Array Elements
  • C Print Arrayy Elements
  • C Print Negative Array Numbers
  • C Print Positive Array Numbers
  • C Put +ve & -Ve in 2 Arrays
  • C Put Even & Odd in 2 Arrays
  • C Program to Reverse an Array
  • C Search an Element in an Array
  • C Sum of array even, odd nums
  • C Sort Array in Ascending Order
  • C Sort Array in Descending
  • C Swap 2 Arrays without Temp
  • C Sum of all Array Elements
  • C Sum of each Matrix column
  • C sum of each row in a Matrix
  • C Sum of Matrix row & column
  • C Add Two Matrices
  • C Sparse Matrix
  • C Symmetric Matrix
  • C Identity Matrix
  • C Interchange Matrix Diagonals
  • C Check two Matrices Equal
  • C Lower Triangle of a Matrix
  • C Upper Triangle of a Matrix
  • C Sum of Lower Triangle Matrix
  • C Sum of Upper Triangle Matrix
  • C Subtract Two Matrices
  • C Transpose of a Matrix program
  • C Cuboid Volume & Surface Area
  • C Cone Volume & Surface Area
  • C Cube Volume & Surface Area
  • C Volume & Surface of Cylinder
  • C Volume & Surface of Sphere
  • C Tutorial
  • C# Tutorial
  • Java Tutorial
  • JavaScript Tutorial
  • Python Tutorial
  • MySQL Tutorial
  • SQL Server Tutorial
  • R Tutorial
  • Power BI Tutorial
  • Tableau Tutorial
  • SSIS Tutorial
  • SSRS Tutorial
  • Informatica Tutorial
  • Talend Tutorial
  • C Programs
  • C++ Programs
  • Java Programs
  • Python Programs
  • MDX Tutorial
  • SSAS Tutorial
  • QlikView Tutorial

Copyright © 2021 | Tutorial Gateway· All Rights Reserved by Suresh

Home | About Us | Contact Us | Privacy Policy