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