Skip to content

Pangram

Intro

A pangram (Greek: παν γράμμα, pan gramma, "every letter") is a sentence using every letter of the alphabet at least once. The best known English pangram is:

The quick brown fox jumps over the lazy dog.

The alphabet used consists of ASCII letters a to z, inclusive, and is case insensitive. Input will not contain non-ASCII symbols.

Task

Determine if a sentence is a pangram.

The Code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "pangram.h"
#include "string.h"
#include "stdlib.h"
#include "stdio.h"
#include "ctype.h"

bool is_pangram(const char *sentence)
{
    if (sentence == NULL)
        return false;
    if (*sentence == '\0')
        return false;

    int lenght = strlen(sentence);
    char *var = malloc(lenght);
    if (var == NULL)
        return false;

    int i = 0;
    for (i = 0; i < lenght; i++)
    {
        var[i] = tolower(sentence[i]);
        if (isalpha(var[i]) == 0)
            var[i] = ' ';
    }

    for (i = 'a'; i < 'z'; i++)
    {
        if (strchr(var, i) == NULL)
        {
            free(var);
            return false;
        }
    }

    free(var);
    return true;
}
1
2
3
4
5
6
7
8
#ifndef PANGRAM_H
#define PANGRAM_H

#include <stdbool.h>

bool is_pangram(const char *sentence);

#endif

Last update: February 8, 2021

Comments