17.04.2013 Views

Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C

Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C

Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

int strncmp ( char * s1, char * s2, int n);<br />

// copiazã la adresa “d” tot sirul de la adresa “s” (inclusiv terminator sir)<br />

char * strcpy (char * d, char * s);<br />

// strncpy: copiazã primele n caractere de la “s” la “d”<br />

char * strncpy ( char *d, char * s, int n);<br />

// strcat: adaugã sirul “s” la sfârsitul sirului “d”<br />

char * strcat (char *d, char* s);<br />

// strncat: adaugã primele n car. de la adresa “s” la sirul “d”<br />

char * strncat (char *d, char *s, int n);<br />

// strchr: are ca rezultat pozitia lui “c” <strong>în</strong> sirul “d” (prima aparitie a lui c)<br />

char * strchr (char *d, char c);<br />

// cautã ultima aparitie a lui “c” <strong>în</strong> sirul “d”<br />

char *strrchr (char *d,char c);<br />

// strstr: are ca rezultat adresa <strong>în</strong> sirul “d” a sirului “s”<br />

char * strstr (char *d, char*s);<br />

// stristr: la fel ca strstr dar ignorã diferenta intre litere mici si mari<br />

char * strstr (char *d, char*s);<br />

Functia “strncpy” nu adaugã subsirului copiat la adresa “d” terminatorul de sir<br />

atunci dacã nstrlen(s).<br />

Functiile de comparare siruri au urmãtorul rezultat:<br />

== 0 dacã sirurile comparate contin aceleasi caractere (sunt identice)<br />

< 0 dacã primul sir (s1) este inferior celui de al doilea sir (s2)<br />

> 0 dacã primul sir (s1) este superior celui de al doilea sir (s2)<br />

Rezultatul functiei de comparare nu este doar -1, 0 sau 1 ci orice valoare <strong>în</strong>treagã<br />

cu semn, deoarece comparatia de caractere se face prin scãdere. Exemplu de<br />

implementare a functiei “strcmp”:<br />

int strcmp ( char * s1, char * s2) {<br />

while (*s1 || *s2) // repeta cât mai sunt caractere <strong>în</strong> s1 sau <strong>în</strong> s2<br />

if (*s1 == *s2) { // daca sunt caractere egale<br />

s1++;s2++; // continua comparatia cu caracterele urmatoare<br />

}<br />

else // daca *s1 != *s2<br />

return *s1-*s2; // rezultat < 0 daca s1

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!