Clasa string simplificată

Laborator
7/10 (2 voturi)
Domeniu: Calculatoare
Conține 1 fișier: doc
Pagini : 3 în total
Cuvinte : 656
Mărime: 7.14KB (arhivat)
Publicat de: Theodor Marginean
Puncte necesare: 0

Extras din laborator

// 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;

}

Preview document

Clasa string simplificată - Pagina 1
Clasa string simplificată - Pagina 2
Clasa string simplificată - Pagina 3

Conținut arhivă zip

  • Clasa string simplificata.doc

Alții au mai descărcat și

Baze de Date

Consideram exemplul unei societati de proiectare. Obiectivul este de a pastra informatii privind proiectele si salariatii care lucreaza la aceste...

Declanșatoare în SQL Server

Introducere. În ultimele decenii se observă dezvoltarea pe scară largă a Sistemelor Informatice şi Tehnologiilor de Programare care au devenit în...

Bază de date SQL

SCHEMA PE BAZA GRAFULUI FACTURI { NrFactura, CodClient, ID_PunctDesfacere, DataFactura} CLIENTI { CodClient, NumeCl, AdresaCl, LocalitateCl}...

Algoritmi GREEDY

Pusi in fata unei probleme pentru care trebuie sa elaboram un algoritm, de multe ori "nu stim cum sa incepem". Ca si in orice alta activitate,...

Liste Dublu Înlănțuite Reprezentare cu Variabile Dinamice

/* Declaratii */ #ifndef LISTDINL_V1 #define LISTDINL_V1 #define INS_BEG 0 #define INS_END 1 #define ASC_ORD 2 #define DESC_ORD 3 #define NO_DUP...

Liste

3.1.1 Operatii fundamentale /* Declaratii */ typedef int INFO; typedef int NODEPTR, LISTA, POZITIE, BOOL; typedef struct nod { INFO info;...

Baze de Date

Clasif. utilizatorilor unor BD 1) utiliz. obisnuiti 2) utiliz. programatori de aplicatii 3) administrator de baza de date 4) administrator a...

Baze de date C6

2.Nivelul logic al BD Avem de-a face cu scheme conceptuale formeaza un model unitar al unei aplicatii complexe prin reunirea subschemelor...

Te-ar putea interesa și

Prelucrari grafice în Java

Imaginile sunt și un concept cu caracter informațional. Oamenii primesc pe cale vizuală cea mai mare parte din informația pe care sistemul lor...

Vulnerabilități ale Securității pe Internet

Proiectat initial pentru conectarea centrelor de cercetare din SUA, Internetul a evoluat foarte mult în scurta sa istorie fiind considerat în...

Medii de Programare

Laborator 1 În acest laborator vom realiza un calculator care să permită simplificarea fracțiilor raționale precum si alte operatii. 1....

Rețele

La sfârşitul lucrării de laborator trebuie să fii capabil: 1 – Să expui principiile transmiterii informaţiei prin cablurile Coaxial şi UTP; 2 –...

Ai nevoie de altceva?