La bibliothèque ctype
isdigit, isalpha, toupper
La bibliothèque ctype est une leçon C Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C Academy comprend 4 leçons au total.
Qu’est-ce que ctype.h
L’en-tête <ctype.h> fournit des fonctions pour classer et convertir les caractères.
Il vous évite de mémoriser les plages ASCII et d’écrire des comparaisons manuelles.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("Is 'A' alpha? %d\n", isalpha('A'));
return 0;
}isdigit
isdigit(c) renvoie une valeur non nulle si c est un caractère chiffre compris entre '0' et '9', et 0 dans le cas contraire.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("isdigit('7') = %d\n", isdigit('7'));
printf("isdigit('x') = %d\n", isdigit('x'));
return 0;
}isalpha
isalpha(c) renvoie une valeur non nulle si c est une lettre, majuscule ou minuscule.
Les chiffres et les symboles renvoient 0.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("isalpha('G') = %d\n", isalpha('G'));
printf("isalpha('3') = %d\n", isalpha('3'));
return 0;
}isalnum et isspace
isalnum(c) est vrai pour les lettres et les chiffres. isspace(c) est vrai pour les caractères d’espacement tels que l’espace, la tabulation et le saut de ligne.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("isalnum('9') = %d\n", isalnum('9'));
printf("isspace(' ') = %d\n", isspace(' '));
printf("isspace('a') = %d\n", isspace('a'));
return 0;
}isupper et islower
isupper(c) vérifie s’il s’agit d’une lettre majuscule, et islower(c) d’une lettre minuscule.
Ces fonctions sont pratiques avant de décider de convertir la casse.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("isupper('A') = %d\n", isupper('A'));
printf("islower('A') = %d\n", islower('A'));
return 0;
}ispunct
ispunct(c) renvoie une valeur non nulle pour les caractères de ponctuation imprimables comme !, ? et , qui ne sont ni des lettres, ni des chiffres, ni des espaces.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("ispunct('!') = %d\n", ispunct('!'));
printf("ispunct('a') = %d\n", ispunct('a'));
return 0;
}toupper
toupper(c) renvoie la version majuscule d’une lettre. Si c n’est pas une lettre minuscule, la fonction renvoie c sans le modifier.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("%c\n", toupper('h'));
printf("%c\n", toupper('5'));
return 0;
}tolower
tolower(c) renvoie la version minuscule d’une lettre majuscule, ou le caractère inchangé s’il n’est pas en majuscule.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("%c\n", tolower('H'));
printf("%c\n", tolower('z'));
return 0;
}Classer une chaîne
Parcourez une chaîne et utilisez les fonctions ctype pour compter les chiffres et les lettres.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char *s = "abc123";
int letters = 0, digits = 0;
for (int i = 0; s[i]; i++) {
if (isalpha(s[i])) letters++;
if (isdigit(s[i])) digits++;
}
printf("letters=%d digits=%d\n", letters, digits);
return 0;
}Mettre toute une chaîne en majuscules
Combinez toupper avec une boucle pour convertir une chaîne entière en majuscules, caractère par caractère.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char s[] = "Hello";
for (int i = 0; s[i]; i++) {
s[i] = toupper(s[i]);
}
printf("%s\n", s);
return 0;
}Passer un int, pas un char négatif
Les fonctions ctype prennent un int qui doit pouvoir être représenté par un unsigned char ou être égal à EOF.
Passer directement un char négatif produit un comportement indéfini. En cas de doute, convertissez-le en unsigned char.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char c = 'Q';
int result = isalpha((unsigned char)c);
printf("safe isalpha = %d\n", result);
return 0;
}Vérification rapide
Testez vos connaissances sur la bibliothèque ctype.
Récapitulatif
La bibliothèque <ctype.h> vous permet de :
- Classer avec
isdigit,isalpha,isalnum,isspace,ispunct,isupperetislower. - Convertir avec
toupperettolower. - Toujours transmettre des valeurs converties en
unsigned charpour éviter un comportement indéfini.
Questions Fréquemment Posées
La leçon « La bibliothèque ctype » est-elle gratuite ?
Oui — le texte complet de « La bibliothèque ctype » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C Academy, passe à CoddyKit PRO. Le cours C Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « La bibliothèque ctype » ?
isdigit, isalpha, toupper Tu pratiques C Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer C Academy ?
Aucune expérience préalable n'est requise. C Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « La bibliothèque ctype » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon C Academy ?
Oui. Chaque leçon C Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Caractères comme entiers
- La bibliothèque ctype
- Lire des caractères
- Créer des utilitaires pour caractères