C Academy · Lezione

La libreria ctype

isdigit, isalpha, toupper

Lezione 2 di 413 passaggi

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, isupper e islower.
  • Convertire con toupper e tolower.
  • Passare sempre valori convertiti a unsigned char per evitare comportamenti non definiti.
Gratis per iniziare

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.

Tutte le lezioni di questo corso

  1. Caratteri come interi
  2. La libreria ctype
  3. Leggere i caratteri
  4. Creare utility per i caratteri
← Torna a C Academy