C Program to Remove All Occurrences of a Character in a String

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

C Program to Remove All Occurrences of a Character in a String using for loop

This program allows the user to enter a string (or character array), and a character value. Next, this C Program will find and remove all occurrences of a character inside a string.

/* C Program to Remove All Occurrences of a Character in a String */
 
#include <stdio.h>
#include <string.h>
 
int main()
{
  	char str[100], ch;
  	int i, len, j;
 
  	printf("\n Please Enter any String :  ");
  	gets(str);
  	
  	printf("\n Please Enter the Character that you want to Remove :  ");
  	scanf("%c", &ch);
  	
	len = strlen(str);
	   	
  	for(i = 0; i < len; i++)
	{
		if(str[i] == ch)
		{
			for(j = i; j < len; j++)
			{
				str[j] = str[j + 1];
			}
			len--;
			i--;	
		} 
	}	
	printf("\n The Final String after Removing All Occurrences of '%c' = %s ", ch, str);
	
  	return 0;
}
C Program to Remove All Occurrences of a Character in a String 1

First, we used C For Loop to iterate every character in a C String. Within the loop, we used the C If Statement to check whether the individual character is equal to a user-specified character or not. If True, then we are using another for loop to shift characters.

for(i = 0; i < len; i++)
{
	if(str[i] == ch)
	{
		for(j = i; j < len; j++)
		{
			str[j] = str[j + 1];
		}
		len--;
		i--;	
	} 
}

str[] = Hello
ch = l
len = 5

First For Loop – First Iteration: for(i = 0; i < len; i++)

The condition is True because 0 < 5.

Within the C Programming For Loop, we used If statement to check whether the str[0] is equal to a user-specified character or not

if(str[i] == ch) => if(H == l)

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

First For Loop – Second Iteration: for(i = 1; 1 < 5; 1++)
if(str[i] == ch) => if(e == l) – condition is false. So, i will increment.

First For Loop – Third Iteration: for(i = 2; 2 < 5; 2++)
if(str[i] == ch) => if(l == l) – condition is True. So, it will enter into the Second For Loop

Second For Loop – First Iteration: for(j = i; j < len; j++)
=> for(j = 2; 2 < 5; 2++) – The condition 2 < 5 is True.
str[i] = str[i + 1]
str[2] = str[3]
str[2] = l
i value incremented

Second Iteration: for(j = 3; 3 < 5; 3++)
str[3] = str[4]
str[3] = 0
i incremented

Third Iteration: for(j = 4; 4 < 5; 4++)
str[4] = str[5]
str[4] = ‘\0’
i will increment

Fourth Iteration: for(j = 5; 5 < 5; 5++)
Condition inside the For Loop Fails. So, it will exist from the second For Loop

First For Loop – Fourth Iteration: for(i = 3; 3 < 5; 3++)
if(str[i] == ch) => if(l == l) – condition is True. So, it will enter into the Second For Loop

Do the same for remaining C Program iterations

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

printf("\n The Final String after Removing All Occurrences of '%c' = %s ", ch, str);

C Program to Remove All Occurrences of a Character in a String using while loop

This program to remove all occurrences of a character is the same as above. Here, we just replaced the For Loop with C While Loop.

/* Remove All Occurrences of a Character in a String using While oop*/

#include <stdio.h>
#include <string.h>

int main()
{
char str[100], ch;
int i, len, j;
i = 0;

printf("\n Please Enter any String : ");
gets(str);

printf("\n Please Enter the Character that you want to Remove : ");
scanf("%c", &ch);

len = strlen(str);

while(i < len)
{
if(str[i] == ch)
{
j = i;
while(j < len)
{
str[j] = str[j + 1];
j++;
}
len--;
i--;
}
i++;
}
printf("\n The Final String after Removing All Occurrences of '%c' = %s ", ch, str);

return 0;
}
 Please Enter any String :  tutorial gateway

 Please Enter the Character that you want to Remove :  t

 The Final String after Removing All Occurrences of 't' = uorial gaeway

C Program to Remove All Occurrences of a Character in a String using functions

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

/* Program to Remove All Occurrences of a Character in a String */

#include <stdio.h>
#include <string.h>

void Remove_AllOccurrence(char *str, char ch);

int main()
{
char str[100], ch;

printf("\n Please Enter any String : ");
gets(str);

printf("\n Please Enter the Character that you want to Remove : ");
scanf("%c", &ch);

Remove_AllOccurrence(str, ch);

printf("\n The Final String after Removing All Occurrences of '%c' = %s ", ch, str);

return 0;
}

void Remove_AllOccurrence(char *str, char ch)
{
int i, j, len;

len = strlen(str);

for(i = 0; i < len; i++)
{
if(str[i] == ch)
{
for(j = i; j < len; j++)
{
str[j] = str[j + 1];
}
len--;
i--;
}
}
}
 Please Enter any String :  C programming language

 Please Enter the Character that you want to Remove :  g

 The Final String after Removing All Occurrences of 'g' = C prorammin lanuae

Also Read