Documente Academic
Documente Profesional
Documente Cultură
PCLP1 Laboratorul13
PCLP1 Laboratorul13
number = *sPtr;
5. Prelucrarea string-urilor. Un string n C++ este un ir de caractere care se
termin cu caracterul null (\0). Un string poate fi accesat printr-un pointer la primul
su caracter. n C++, un string este un pointer constant la primul lui caracter, astfel
nct string-urile pot fi tratate ca i tablouri.
Citirea string-urilor se poate face cu ajutorul stream-urilor. Pentru string-ul
word[20], instruciunea de citire poate fi scris astfel:
cin >> word;
Manipulatorul setw se folosete pentru a fi siguri c string-ul introdus nu
depete dimensiunea alocat.:
cin >> setw(20) >> word;
n unele cazuri este necesar s introducem ntr-un tablou o ntreag linie de
text. Pentru aceasta se poate folosi funcia cin.getline care are trei parametri: numele
tabloului n care se pstreaz textul, lungimea acestuia i un caracter de delimitare:
char fraza[80];
cin.getline(fraza, 80, \n);
Funcia oprete citirea caracterelor atunci cnd ntlnete caracterul de
delimitare nainte de a fi citit cele 80 de caractere.
Biblioteca standard C++ definete o serie de funcii pentru manipularea stringurilor i sunt incluse n fiierul header cstring. Unele dintre aceste funcii folosesc
tipul de dat size_t care este un tip integral unsigned.
Prototipul funciei Descrierea funciei
char* strcpy(char* s1, const char* s2);
Copiaz string-ul s2 n tabloul de caractere s1. Este
returnat valoarea lui s1.
char* strncpy(char* s1, const char* s2, size_t n);
Copiaz cel mult n caractere ale string-ului s2 n tabloul s1.
Este returnat valoarea lui s1.
char* strcat(char* s1, const char* s2);
Adaug string-ul s2 la s1. Primul caracter al lui s2
suprascrie terminatorul de ir din s1. Este returnat
valoarea lui s1.
char* strncat(char* s1, const char* s2, size_t n);
Adaug cel mult n caractere din string-ul s2 la s1. Primul
caracter al lui s2 suprascrie terminatorul de ir din s1. Este
returnat valoarea lui s1.
char strcmp(char* s1, const char* s2);
Compar string-ul s1 cu s2. Funcia returneaz valoarea
zero, o valoare negativ sau o valoare pozitiv dac s1 este
egal cu s2, dac este mai mic sau este mai mare, respectiv.
Compararea se face dup codurile ASCII.
char strncmp(char* s1, const char* s2, size_t n);
Compar cel mult n caractere din string-ul s1 cu s2.
Funcia returneaz valoarea zero, o valoare negativ sau o
valoare pozitiv dac s1 este egal cu s2, dac este mai mic
sau este mai mare, respectiv. Compararea se face dup
codurile ASCII.
char* strtok(char* s1, const char* s2);
}
return 0;
}
Programul afieaz:
String-ul care va fi impartit in tokeni este: Aceasta este o
fraza cu 7 tokeni
Tokenii sunt:
Aceasta
este
o
fraza
cu
7
tokeni
Gsii erorile din segmentele de program de mai jos.
a) char s[50];
cout << strncpy(s, hello, 5) << endl;
b) char s[12];
strcpy(s, Welcome Home);
c) if(strcmp(string1, string2))
cout << String-urile sunt egale << endl;