Tipul predefinit, destinat în C lucrului cu caractere, este tipul char. Spatiul de memorie asociat variabilelor acestui tip este 1 octet; un caracter se memoreaza ca numarul întreg corespunzator codului ASCII al caracterului respectiv. Prin urmare, în C un caracter poate aparea în operatii numerice. Valorile acestui tip sunt cuprinse în intervalul [-128...127] în cazul caracterelor cu semn, respectiv [0...255] în cazul celor fara semn.
Biblioteca C standard ofera o gama larga de functii pentru manipularea caracterelor. Aceste functii sunt grupate în doua categorii:
int isalpha(int c);
Efect: returneaza o valoare nenula daca c este litera ['' A''...''Z'', ''a''...''z''];
Exemplu de implementare:
int isalpha(int c) { return c>='A' && c<='Z' || c>='a' && c<='z'; }
int isdigit(int c);
Efect: returneaza o valoare nenula daca c este cifra [''0''...''9''];
int isalnum(int c);
Efect: returneaza o valoare nenula daca c este litera sau cifra;
int isupper(int c);
Efect: returneaza o valoare nenula daca c este litera mare;
int islower(int c);
Efect: returneaza o valoare nenula daca c este litera mica;
int isspace(int c);
Efect: returneaza o valoare nenula daca c este un caracter spatiu ('' '', r, t, n, f, v);
int toupper(int c);
Efect: returneaza litera majuscula ce corespunde lui c, daca c este litera mica;
Exemplu de implementare:
int toupper(int c) { return islower(c) ? c-'a'+'A' : c; }
int tolower(int c);
Efect: returneaza litera mica ce corespunde lui c, daca c este litera mare;