Sunteți pe pagina 1din 22

Un ir de caractere este o succesiune de caractere cuprins ntre dou ghilimele i care poate s conin orice caractere: litere mari

i mici, caractere speciale (#, &, etc) i delimitatori (virgula, spaiul, etc).

n C++ un ir de caractere poate fi definit ca


un vector de caractere.

char nume[dim_max];
char sir[20];

char * nume; char *sir;

Un POINTER este o dat care are ca valori adrese de memorie. int * p1 p1 este un pointer cu tipul de baz int, adic va conine adresa de memorie la care este memorat un numr ntreg int i=10, *p ,x; p=&i Refereniere: atribuim pointerului p adresa variabilei i x= *p Defereniere: atribuim variabilei x valoarea memorat n zona de memorie a crei adres de nceput este memorat de p

Lungimea irului de caractere = numrul de


caractere pe care le conine irul. La sfritul irului compilatorul C++ memoreaz caracterul NULL avnd valoarea 0 binar. Are rolul de a marca sfritul de ir.

char s[4]=test; eronat pentru c trebuia alocat spaiu i pentru sfritul de ir. char s[10]=test; corect, iar poziiile rmase libere la sfritul vectorului vor fi ocupate cu caracterul NULL

int main() {char s[4]; cout<<"s=";cin>>s; cout<<s; return 0; }

int main() {char s[100]; cout<<"s=";cin.get(s,100); cout<<s; return 0; }

int main() {char s[15],*p; cout<<"s=";cin.get(s,100); cout<<s<<endl; cout<<"s+1 = "<<(s+1)<<endl; cout<<"s+2 = "<<(s+2)<<endl; cout<<"s+3 = "<<(s+3)<<endl; cout<<endl; cout<<"(s)[0]: "<<(s)[0]<<endl; cout<<"(s+1)[0]: "<<(s+1)[0]<<endl; cout<<"(s+1)[1]: "<<(s+1)[1]<<endl; cout<<"(s+1)[2]: "<<(s+1)[2]<<endl; cout<<"(s+2)[0]: "<<(s+2)[0]<<endl; cout<<"(s+2)[1]: "<<(s+2)[1]<<endl; cout<<endl; p=s+3; cout<<"s+3 = "<<p<<endl; p++; cout<<"s+4 = "<<p<<endl; return 0; }

int strlen(const char *s);


char s[]=C++; strlen(s)=3

strcpy(dest, sursa);
Copiaz irul sursa n irul dest i ntoarce adresa lui dest. dest este un parametru dat prin referin, jucnd rolul de valoare returnat de ctre funcie. sursa poate fi dat printr-o variabil sau printro constant ir de caractere.

strncpy(dest, sursa,nr);
Copiaz n irul dest primele nr caractere din irul sursa

strcat(dest, sursa) Lipete irul sursa la sfritul irului dest. Rezultatul returnat de funcie este irul dest, (prin parametru de tip referin). strncat(dest, sursa,nr) Lipete la sfritul irului dest primele nr caractere din irul sursa. irul sursa poate fi o variabil sau o constant, iar irul dest poate fi doar o variabil.

Compararea a dou iruri vizeaz ordonarea lor alfabetic i se face caracter cu caracter. Are loc de fapt compararea codurilor ASCII asociate caracterelor.

strcmp(sir1, sir2) Funcia returneaz O valoare mai mic de 0, dac sir1 < sir2 0 , dac sir1=sir2 O valoare mai mare de 0, dac sir1 >sir2 ex: sir1=programare sir2=programe

strncmp(sir1, sir2,nr) Compar din punct de vedere lexicografic primele nr caractere din sir1 i sir2.
stricmp(sir1, sir2) strincmp(sir1, sir2,nr) Sunt asemntoare cu strcmp i strncmp, cu deosebirea c nu fac deosebire ntre litere mari i mici.

dest=strchr(sursa, caracter) Caut caracter n irul sursa i returneaz n dest adresa primei apariii a caracterului n surs. Funcia va returna o poriune din irul sursa, ncepnd de la prima apariie a caracterului caracter pn la sfritul irului. n cazul n care nu se gsete caracterul n ir funcia va returna NULL.

dest=strrchr(sursa, caracter)
Funcia returneaz adresa ultimei apariii a caracter n irul sursa.

dest=strstr(sir1, sir2) Caut sir2 n irul sir1 i returneaz n dest adresa primei apariii a sir2 n surs. Funcia va returna o poriune din irul sir1, ncepnd de la prima apariie a sirului sir2 pn la sfritul irului sir1. n cazul n care nu se gsete sir2 n sir1 va returna NULL.

dest=strrev(sursa) Funcia realizeaz inversarea irului sursa n irul dest.


#include<iostream> using namespace std; int main() {char s[]="vara"; strrev(s); cout<<s; }

nr=atol(sir) Transform sir ntr-un numr ntreg lung. nr=atoi(sir) Transform sir ntr-un numr ntreg. nr=atof(sir) Transform sir ntr-un numr real.

itoa(nr, sir, baza) Transform numrul ntreg nr scris n baza de numeraie baza, n irul corespunztor itoa(nr, sir, baza) Transform numrul ntreg lung nr n sir.

S-ar putea să vă placă și