Capitolul 7.9. Cateva functii amestecate

Vezi subiectul anterior Vezi subiectul urmator In jos

Capitolul 7.9. Cateva functii amestecate

Mesaj  zooky la data de Mier Mar 18, 2009 2:36 pm

Biblioteca standard pune la dispozitie o varietate de functii, citeva fiind deosebit de utile. Am mentionat deja functiile cu siruri strlen, strepy, strcat si strcmp. Urmeaza alte citeva.

Testarea clasei caracterelor si conversia lor

Mai multe macrouri executa teste asupra caracterelor si conversia lor:

isalpha(c) nonzero daca c este alfabetic si zero daca nu.
isupper(c) nonzero daca c este litera mare (upper case)si 0 dacanu.
islower -nonzero daca c este caracter mic (lower case)si 0 daca nu.
isdigit -nonzero daca c este digit si zero daca nu.
isspace -nonzero daca c ete blanc, tab sau newline si 0 daca nu.
toupper -converteste c in caracter mare (upper case)
tolower(c) -converteste c in caracter mic (lower case).

Ungetc

Biblioteca standard contine o versiune restrictiva a functiei ungetch pe care am scris--o in capitolul 4; se numeste ungetch.

ungetch(c, fp)

impinge caracterul c inapoi in fisierul fp. Numai un caracter din fisierc poate fi tratat astfel ungetc poate fi utilizat cu oricare din functii le si macrouruile de introducere ca scanf, getc sau getchar.

Apel system

Apelarea functiei system(s) executa comanda continuta in sirul de caractere s apoi reia programul curent. Continutul lui s depinde mult de sistemul de operare. Ca un exemplu ordinar in UNIX linia

system("date");

determina rularea parogramului date care tiparesete data si momentul zilei.

Managementul memoriei

Functia calloc este asemanatoare cu alloc pe care am utilizat-o in capitolele precedente.

calloc(n, sizeof(object))

returneaza un pointer daca este suficient spatiu pentru cele n obiecte de dimensiunea specificata sizeof sau NULL daca cererea poate fi satis facuta. Memoria este initializata cu zero.

Pointerul are aliniamentul adecvat obiectelor respective, dar el trebuie introdus intr-un tip corespunzator.

cfree(p) elibereaza spatiul pointat prin p unde p este initial obtinut prin apelarea lui calloc. Nu exista restrictii asupra ordinii in care spatiul este eliberat, dar este o mare greseala sa eliberezi ceva ce nu ai obtinut prin apelarea functiei calloc.

Capitolul 8 prezinta implementarea unui alocator de memorie ca calloc, in care blocurile alocate pot fi eliberate in orice ordine.
avatar
zooky
Moderator
Moderator

Numarul mesajelor : 147
Data de inscriere : 15/03/2009
Varsta : 24
Localizare : Cernatesti City

Vezi profilul utilizatorului http://e-learning.forumhit.ro

Sus In jos

Vezi subiectul anterior Vezi subiectul urmator Sus


 
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum