C Program to Check if String is Pangram
Last Updated :
26 Oct, 2022
Given a string Str. The task is to check if it is Pangram or not.Â
A pangram is a sentence containing every letter in the English Alphabet.
Examples:Â
Input: “The quick brown fox jumps over the lazy dog”Â
Output: is a PangramÂ
Explanation: Contains all the characters from ‘a’ to ‘z’]Â
Input: “The quick brown fox jumps over the dog”
Output: is not a PangramÂ
Explanation: Doesn’t contain all the characters from ‘a’ to ‘z’, as ‘l’, ‘z’, ‘y’ are missing
Approach: Below is the idea to solve the problem
Create a mark[] array of Boolean types and iterate through all the characters of the string and mark it as visited. Lowercase and Uppercase are considered the same. So ‘A’ and ‘a’ are marked in index 0 and similarly ‘Z’ and ‘z’ are marked in index 25.
After iterating through all the characters check whether all the characters are marked or not. If not then return false as this is not a pangram else return true.Â
Follow the below steps to Implement the idea:
- Create a bool vector mark[] of size 26.
- Iterate through all characters of the string str and mark str[i] – ‘a’ or str[i] – ‘A’ as 1 for lower and upper characters respectively.
- Iterate through all the indices of mark[]Â
- If all indices are marked visited then return is a PangramÂ
- Else return is not a Pangram.
Below is the Implementation of above approach
C
#include <stdbool.h>
#include <stdio.h>
#include <string.h>
bool checkPangram( char str[])
{
bool mark[26];
for ( int i = 0; i < 26; i++)
mark[i] = false ;
int index;
size_t size = strlen (str);
for ( int i = 0; i < size; i++) {
if ( 'A' <= str[i] && str[i] <= 'Z' )
index = str[i] - 'A' ;
else if ( 'a' <= str[i] && str[i] <= 'z' )
index = str[i] - 'a' ;
else
continue ;
mark[index] = true ;
}
for ( int i = 0; i <= 25; i++)
if (mark[i] == false )
return ( false );
return ( true );
}
int main()
{
char str[]
= "The quick brown fox jumps over the lazy dog" ;
if (checkPangram(str) == true )
printf (" %s
is a pangram", str);
else
printf (" %s
is not a pangram", str);
return (0);
}
|
Output
The quick brown fox jumps over the lazy dog
is a pangram
Time Complexity: O(n), where n is the length of our stringÂ
Auxiliary Space: O(1), as 26 size Boolean vector is constant.Â
Share your thoughts in the comments
Please Login to comment...