Limbajul C a fost conceput ca un limbaj relativ redus, evitându-se elemente care nu au fost considerate strict necesare sau care ar reduce flexibilitatea si viteza de executie. Prin urmare, C nu are încorporate facilitati de prelucrare directa a sirurilor de caractere, multimilor, listelor, tablourilor. Din acest motiv, nu exista definit un tip de date pentru sirurile de caractere, folosindu-se pentru siruri tablouri de caractere (char[]) sau pointeri la caracter (char *). De asemenea, nu sunt prevazute în limbaj facilitati de intrare/iesire (nu exista instructiuni READ sau WRITE), de alocare dinamica de memorie sau metode de acces la fisiere. Pentru aceste operatii, cea mai mare parte a implementarilor de C ofera colectii standard de functii de biblioteca. Aceste functii au o varietate de optiuni. În plus, fiecare programator isi poate construi propria sa biblioteca de functii care sa înlocuiasca sau sa extinda colectia de functii standard ale limbajului.
În cele ce urmeaza, vom trece în revista functiile de biblioteca cele mai uzuale (mai putin functiile pentru tratarea sirurilor de caractere si functiile relative la fisiere, care vor fi prezentate în capitolele urmatoare).