Extras din laborator
Sirul de caractere este un container de tip secventa. Clasa string este construita folosind sablonul basic_string
Un operand de tip secventa poate fi specificat în mai multe moduri, si anume:
- c - o secventa cu un element cu valoarea c
- n, c – o secventa de n elemente cu valoarea c
- s – o secventa terminata prin 0 (în genul sirurilor de caractere C)
- s, n – o secventa de n caractere, începând din s
- str – o secventa specificata de un obiect string
- str, pos, n – un subsir
- prim, ultim – o secventa delimitata de doi iteratori
1.Exemple de utilizare.
Fata de sirurile de caractere stil C, avem urmatoarele avantaje:
• operatii de nivel înalt: append(), concat(), insert(), replace()
• atribuirea de siruri
• comparatii de siruri folosind operatorii: <, =, >
Exemplul 1: Detectarea unui sir palindrom.
//test palindrom
bool pal1(string& s){
string t;
t = s;
reverse(t.begin(), t.end());
return s==t;
};
//se convertesc toate literele in mici
int pal2(string& s){
string mic(s);
transform(s.begin(),s.end(),mici.begin(),tolower);
return pal1(mici);
};
void transform(iterator start, iterator stop, iterator dest, char (*f)(char)){
while(start!=stop)
dest++ =f(*start++);
};
//se elimina toate semnele de punctuatie
int pal3(string& s){
string punct=” ,.:;!?n”
string t=remove_all(s,punct);
return pal2(t);
};
string remove_all(string& txt, string& sep){
string rez;
int ltx=txt.length();
int lsp=sep.length();
for(int i=0; i<ltx; i++){
string car=txt.substr(i,1);
int poz=sep.find(car,0);
if(poz<0 || poz>lsp)
rez+=car;
};
return rez;
};
Preview document
Conținut arhivă zip
- string.doc