C Program to Find Maximum Occurring Character in a String

Write a C Program to Find Maximum Occurring Character in a String with example.

C Program to Find Maximum Occurring Character in a String Example 1

This program allows the user to enter a string (or character array). Next, it will find the maximum occurring character (most repeated character) inside a string.

/* C Program to Find Maximum Occurring Character in a String */
 
#include <stdio.h>
#include <string.h>
 
int main()
{
  	char str[100], result;
  	int i, len;
  	int max = -1;
  	
  	int freq[256] = {0}; 
 
  	printf("\n Please Enter any String :  ");
  	gets(str);
  	
  	len = strlen(str);
  	
  	for(i = 0; i < len; i++)
  	{
  		freq[str[i]]++;
	}
  		
  	for(i = 0; i < len; i++)
  	{
		if(max < freq[str[i]])
		{
			max = freq[str[i]];
			result = str[i];
		}
	}
	printf("\n The Maximum Occurring Character in a Given String = %c ", result);
	
  	return 0;
}
C Program to Find Maximum Occurring Character in a String 1

First, we declared a Freq array of size 256, which will initially hold 0’s. Next, we used For Loop to iterate every character in a String, and find the maximum repeated character.

for(i = 0; i < len; i++)
{
	if(max < freq[str[i]])
	{
		max = freq[str[i]];
		result = str[i];
	}
}

str[] = hello

First For Loop – First Iteration: for(i = 0; i < strlen(str) ; i++)
The condition is True because 0 < 5.
if(max < freq[str[i]]) => if(-1 < freq[h]])
=> if(-1 < 1) – Condition is True
max = freq[str[i]] => 1
result = str[i] = h

Second Iteration: for(i = 1; 1 < 5; 1++)
if(max < freq[str[1]])  => if(1 < freq[e]])
=> if(1 < 1) – Condition is False

Third Iteration: (i = 2; 2 < 5; 2++)
if(1 < freq[l]]) => if(1 < 2) – Condition is True
max = freq[str[i]] => 2
result = str[i] = l

Fourth Iteration: for(i = 3; 3 < 5; 3++)
if(max < freq[str[3]])  => if(2 < freq[l]])
=> if(2 < 2) – Condition is False

Fifth Iteration: for(i = 4; 4 < 5; 4++)
if(max < freq[str[4]])  => if(2 < freq[o]])
=> if(2 < 1) – Condition is False

At last we used the C Programming printf statement to print the final string

printf("\n The Maximum Occurring Character in a Given String = %c ", result);

C Program to Find Maximum Occurring String Character Example 2

This Maximum Occurring String Character C program is same as above, but we did small changes to the logic.

/* C Program to Find Maximum Occurring Character in a String */
 
#include <stdio.h>
#include <string.h>
 
int main()
{
  	char str[100], result;
  	int i, len;
  	int max = 0;
  	
  	int freq[256] = {0}; 
 
  	printf("\n Please Enter any String :  ");
  	gets(str);
  	
  	len = strlen(str);
  	
  	for(i = 0; i < len; i++)
  	{
  		freq[str[i]]++;
	}
  		
  	for(i = 0; i < 256; i++)
  	{
		if(freq[i] > freq[max])
		{
			max = i;
		}
	}
	printf("\n Character '%c' appears Maximum of %d Times in a Given String :  %s ", max, freq[max], str);
	
  	return 0;
}
 Please Enter any String :  tutorialgateway.org

 Character 'a' appears Maximum of 3 Times in a Given String :  tutorialgateway.org 

Program to Find Maximum Occurring Character in a String Example 3

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

/* C Program to Find Maximum Occurring Character in a String */
 
#include <stdio.h>
#include <string.h>

void Max_Occurring(char *str);
 
int main()
{
  	char str[100];
 
  	printf("\n Please Enter any String :  ");
  	gets(str);
  	
  	Max_Occurring(str);
	
  	return 0;
}

void Max_Occurring(char *str)
{
	int i;
  	int max = 0;
  	
  	int freq[256] = {0}; 
  	 	
  	for(i = 0; str[i] != '\0'; i++)
  	{
  		freq[str[i]] = freq[str[i]] + 1;
	}
  		
  	for(i = 0; i < 256; i++)
  	{
		if(freq[i] > freq[max])
		{
			max = i;
		}
	}
	printf("\n Character '%c' appears Maximum of %d Times in a Given String :  %s ", max, freq[max], str);
}
 Please Enter any String :  learn c programming at tutorial gateway

 Character 'a' appears Maximum of 6 Times in a Given String :  learn c programming at tutorial gateway 

About Suresh

Suresh is the founder of TutorialGateway and a freelance software developer. He specialized in Designing and Developing Windows and Web applications. The experience he gained in Programming and BI integration, and reporting tools translates into this blog. You can find him on Facebook or Twitter.