La libreria ctype
isdigit, isalpha, toupper
La libreria ctype è una lezione C Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C Academy include 4 lezioni in totale.
Che cos'è ctype.h
L'header <ctype.h> fornisce funzioni per classificare e convertire i caratteri.
Evita di dover memorizzare gli intervalli ASCII e scrivere confronti manuali.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("Is 'A' alpha? %d\n", isalpha('A'));
return 0;
}isdigit
isdigit(c) restituisce un valore diverso da zero se c è un carattere cifra compreso tra '0' e '9', e 0 altrimenti.
#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) restituisce un valore diverso da zero se c è una lettera, maiuscola o minuscola.
Per le cifre e i simboli restituisce 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 e isspace
isalnum(c) restituisce un valore diverso da zero per le lettere o le cifre. isspace(c) restituisce un valore diverso da zero per i caratteri di spazio vuoto, come spazio, tabulazione e nuova riga.
#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 e islower
isupper(c) verifica se un carattere è una lettera maiuscola, mentre islower(c) verifica se è una lettera minuscola.
Queste funzioni sono utili prima di decidere se convertire la maiuscola o la minuscola.
#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) restituisce un valore diverso da zero per i caratteri di punteggiatura stampabili, come !, ? e ,, che non sono lettere, cifre o spazi.
#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) restituisce la versione maiuscola di una lettera. Se c non è una lettera minuscola, restituisce c invariato.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("%c\n", toupper('h'));
printf("%c\n", toupper('5'));
return 0;
}tolower
tolower(c) restituisce la versione minuscola di una lettera maiuscola oppure lascia invariato il carattere se non è maiuscolo.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("%c\n", tolower('H'));
printf("%c\n", tolower('z'));
return 0;
}Classificare una stringa
Scorra una stringa e usi le funzioni di ctype per contare cifre e lettere.
#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;
}Convertire un'intera stringa in maiuscolo
Combini toupper con un ciclo per convertire un'intera stringa in maiuscolo, un carattere alla volta.
#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;
}Passare int, non un char negativo
Le funzioni di ctype accettano un int che deve essere rappresentabile come unsigned char oppure essere EOF.
Passare direttamente un char negativo comporta un comportamento non definito. In caso di dubbio, esegua il cast a 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;
}Verifica rapida
Verifichi la propria conoscenza della libreria ctype.
Riepilogo
La libreria <ctype.h> consente di:
- Classificare con
isdigit,isalpha,isalnum,isspace,ispunct,isuppereislower. - Convertire con
toupperetolower. - Passare sempre valori convertiti a
unsigned charper evitare comportamenti non definiti.
Impara C con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 39
- Lezioni
- 144
Domande Frequenti
La lezione «La libreria ctype» è gratuita?
Sì — il testo completo di «La libreria ctype» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C Academy, passa a CoddyKit PRO. Il corso C Academy include 4 lezioni in totale.
Cosa imparerò in «La libreria ctype»?
isdigit, isalpha, toupper Eserciti C Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare C Academy?
Non è richiesta alcuna esperienza precedente. C Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «La libreria ctype»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione C Academy?
Sì. Ogni lezione C Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.