Fonction isalpha

Entête à inclure

#include <ctype.h>  // <cctype> en C++

Fonction isalpha

int isalpha( int character );

Cette fonction permet de tester si un caractère est alphabétique ou non. Un caractère sera considéré comme alphabétique s'il est de lettres minuscules ou de lettres majuscules. Rappel : les fonctions de cette librairie ne traitent que les caractères purs ASCII. Les lettres accentuées ne seront donc pas considérées comme des caractères alpha-numériques.

Paramètre

  • character : le caractère à tester. Il est sur-typé par int car la fonction peut aussi accepter la valeur -1 (EOF - End Of File) correspondant à la fin d'un flux.

Valeur de retour

La valeur de retour doit être interprétée en tant que valeur booléenne. Une valeur positive non nulle signifira qu'il s'agit bien d'un caractère alphabétique. La valeur 0 indiquera qu'il ne s'agit pas d'un caractère aphabétique.

Exemple de code

#include <ctype.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {

    char buffer[80];
    printf( "Enter your last name : " );
    scanf( "%[^\n]", buffer );

    bool isCorrect = true;
    size_t length = strlen( buffer );
    for( int i=0; i<length; i++ ) {
        if ( isalpha( buffer[i] ) == false && isblank( buffer[i] ) == false ) {
            isCorrect = false;
        }
    }

    if ( isCorrect ) {
        printf( "Your last name (%s) is correct\n", buffer );
    } else {
        printf( "Your last name (%s) is not correct\n", buffer );
    }

    return EXIT_SUCCESS;
}

Attention : cet exemple utilise des éléments de syntaxe définis dans le standard C99. L'emploie de l'option -std=c99 sur la ligne de compilation de votre exemple est donc requis.

Voici un petit exemple d'exécution de ce programme :

$> gcc -o Sample -Wall -std=c99 Sample.c
$> ./Sample
Enter you last name : c3po
Your last name (c3po) is not correct
$> ./Sample
Enter you last name : De La Vega
Your last name (De La Vega) is correct
$>

Sujets connexes

isalnum
isblank
iscntrl
isdigit
isgraph
islower
isprint
ispunct
isspace
isupper
isxdigit