The Algorithms logo
The Algorithms
AboutDonate

Isogram

C
#include <stdbool.h>
#include <string.h>

/*
    is_isogram: returns true if the given string a isogram, otherwise false.
*/
bool is_isogram(const char phrase[])
{
    /* use 'unsigned' because of the function strlen(...) */
    unsigned int i = 0;
    unsigned int j = 0;

    /* the current read character in the first for-loop */
    char current_char = ' ';

    /* return status */
    bool status = true;

    /* contains the length of the given string */
    unsigned int len_phrase = strlen(phrase);

    for (i = 0; i < len_phrase; i++)
    {
        current_char = phrase[i];

        /* makes sure the current character has no repetition */
        for (j = i + 1; j < len_phrase; j++)
        {
            if (current_char == phrase[j])
            {
                status = false;

                /*
                    because the given string is none isogram.
                    that means we can exit the nested for-loop.
                */
                goto end;
            }
        }
    }

/* exit label */
end:
    return status;
}