C Program to find maximum occurrence of character in a string

CServer Side ProgrammingProgramming

An array of characters is called a string.

Declaration

Following is the declaration declaring an array is as follows −

char stringname [size];

For example: char string[50]; string of length 50 characters

Initialization

  • Using single character constant −
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
  • Using string constants −
char string[10] = "Hello":;

Accessing − There is a control string "%s" used for accessing the string till it encounters ‘\0’.

Finding maximum occurrence

The logic to find the maximum occurrence of character is −

  • First, find frequency of characters, by using the following program.
while(string[i] != '\0'){
   value = (int)string[i];
   frequency[value] += 1;
   i++;
}
  • Based on this, we are finding maximum occurrence character.
maximum = 0;
for(i=0; i<CHARS; i++){
   if(frequency[i] > frequency[maximum])
      maximum = i;
}

Example

Given below is the C program to find max occurring character in a string −

 Live Demo

#include <stdio.h>
#define SIZE 100 // Maximum string size
#define CHARS 255 // Maximum characters allowed
int main(){
   char string[SIZE];
   int frequency[CHARS];
   int i = 0, maximum;
   int value;
   printf("Enter the string:\n ");
   gets(string);
   for(i=0; i<CHARS; i++){
      frequency[i] = 0; // initialize freq of all characters to zero
   }
   /* Finds frequency of each characters */
   i=0;
   while(string[i] != '\0'){
      value = (int)string[i];
      frequency[value] += 1;
      i++;
   }
   /* Finds maximum frequency */
   maximum = 0;
   for(i=0; i<CHARS; i++){
      if(frequency[i] > frequency[maximum])
         maximum = i;
      }
      printf("Maximum occurrence character is '%c' = %d times.", maximum,
      frequency[maximum]);
   return 0;
}

Output

When the above program is executed, it produces the following result −

Enter the string:
tutorials point
Maximum occurrence character is 't' = 3 times.
raja
Published on 12-Mar-2021 10:51:56
Advertisements