Clasa String Simplificata

Imagine preview
(7/10 din 2 voturi)

Acest laborator prezinta Clasa String Simplificata.
Mai jos poate fi vizualizat un extras din document (aprox. 2 pagini).

Arhiva contine 1 fisier doc de 3 pagini .

Iti recomandam sa te uiti bine pe extras si pe imaginile oferite iar daca este ceea ce-ti trebuie pentru documentarea ta, il poti descarca.

Fratele cel mare te iubeste, acest download este gratuit. Yupyy!

Domenii: Calculatoare, Automatica, Inteligenta Artificiala, Limbaje de Programare

Extras din document

// supraincarcare operator de indexare

char & string::operator [ ] (int index){

assert (index <= lgbuf);

return buf[index];

}

// formare subsir

string string::substr (int start, int lung){

assert (start + lung <= length());

string sub; // subsir rezultat

sub.resize (lung, ' '); // dimensionare

for (int i = 0; i < lung; i++)

sub[i] = buf[start + i]; // copiere din sir

return sub;

}

// sterge lung caractere incepand cu start

void string::remove (int start, int lung){

// calcul unde se termina zona stearsa

int stop = start + lung;

// muta caractere

while ((stop < lgbuf) && (buf[stop] != '�'))

buf[start++] = buf[stop++];

buf[start] = '�';

}

// inserare sirnou, incepand din pos

void string::insert (int pos, string & sirnou){

int lung = length(); // lungime curenta

int lgss = sirnou.length(); // lungime suplimentara

int lgnoua = lung + lgss; // lungime noua

// daca estenecesar, realoca buffer

resize(lgnoua, '�');

// muta caractere existente

for (int i = lung; i > pos; i--)

buf[i + lgss] = buf[i];

// inserare caractere noi

for (int i = 0; i < lgss; i++)

buf[pos + i] = sirnou[i];

}

// inlocuieste intre start si start + lung sirnou

void string::replace (int start, int lung, string & sirnou){

remove (start, lung);

insert (start, sirnou);

}

// adauga argumentul string la sfarsitul stringului curent

void string::operator += (string & right){

insert (length(), right);

}

// concatenare doua stringuri

string operator + (string & st, string & dr){

string clone(left); // copiere argument stang

clone += right; // adauga argument drept

return clone; // intoarce rezultat

}

# if 0 // daca este deja defined, apare o eroare de compilare

// test mai mic lexicografic

int operator < (string & st, string & dr){

return strcmp(st.buf, dr.buf) < 0;

}

# endif

// cauta sirul destinatie

int string::find (string & dest, int start){

int lgdest = dest.length();

// stop este ultima pozitie posibla de start

int stop = length() - lgdest;

for (int i = start; i <= stop; i++) {

string text = substr(i, lgdest);

if (text == dest)

return i;

}

// nu s/a gasit subsir, intoarce indice in afara domeniului

return lgbuf;

}

Fisiere in arhiva (1):

  • Clasa string simplificata.doc