Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
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