Concetti Chiave
- La libreria ctype.h offre funzioni per verificare e convertire tipi di dato char, garantendo portabilità del codice.
- Le funzioni accettano un input int che può essere un unsigned char o EOF; altri valori portano a comportamento indefinito.
- Le funzioni di verifica come isalnum e isalpha restituiscono un valore booleano per varie proprietà dei caratteri.
- Funzioni di conversione come tolower e toupper modificano i caratteri tra minuscolo e maiuscolo se applicabile.
- È importante eseguire un cast a unsigned char per evitare comportamenti indefiniti con valori negativi.
Libreria ctype
Il file header ctype.h dichiara funzioni utili per verificare proprietà e convertire i tipi di dato char, utili per scrivere codice portabile non dipendente dal set di caratteri dell’elaboratore.
I prototipi delle funzioni e la loro semantica e definita dallo standard ISO. Tutte le funzioni prendono in input un dato int, il cui valore può essere un unsigned char o EOF, se l’argomento assume un altro valore allora il comportamento e non definito, se il valore della variabile e negativo il comportamento potrebbe essere non definito, è quindi necessario effettuare un cast a unsigned char.
Funzioni di verifica: danno come risultato vero o falso
int isalnum(int c); -> Verifica che il carattere sia alfanumerico
int isalpha(int c); -> Verifica che il carattere sia alfabetico
int iscntrl(int c); -> Verifica che il carattere sia di controllo
int isdigit(int c); -> Verifica che il carattere sia numerico
int isgraph(int c); -> Verifica che il carattere sia grafico(carattere stampabile, eccetto spazio)
int islower(int c); -> Verifica che il carattere sia minuscolo
int isprint(int c); -> Verifica che il carattere sia stampabile (incluso spazio)
int ispunct(int c); -> Verifica che il carattere sia di punteggiatura
int isspace(int c); -> Verifica che il carattere sia di spaziatura
int isupper(int c); -> Verifica che il carattere sia maiuscolo
int isxdigit(int c); -> Verifica che il carattere sia esadecimale
Funzione di conversione: ritornano codice ASCII
int tolower(int c); -> Converte in minuscolo (se applicabile)
int toupper(int c); -> Converte in maiuscolo (se applicabile)