Lectures on C

Lectures in C / C ++: linie string class

În astăzi standardul de clasa C ++ este definit cu funcțiile și proprietățile (variabile) pentru organizarea de lucru cu siruri de caractere (în clasic siruri de caractere limbajului C, deoarece nu există nici una, există doar șiruri de caractere caractere):

Pentru a lucra cu siruri de caractere și trebuie să conectați un spațiu de nume standard de.

În caz contrar, va trebui să specificați toate clasa descriptor std :: string în loc de coarde.

Ceea ce urmează este un exemplu de program care funcționează cu un șir de caractere (în vechile compilatoare B-compatibil nu funcționează!)

Luați în considerare aceste caracteristici de bază mai detaliat.

Inițializeze descriere șirurile și lungimea string (nu inclusiv terminatorul nul terminal):

Șirul poate fi specificat și gol:

Pentru a verifica dacă un șir de caractere este gol. puteți compara cu o lungime 0:

sau utilizarea gol metoda (). returnează true pentru un șir gol și fals pentru non-gol:

A treia formă de tip string crea obiect string inițializează un alt obiect de același tip:

string ST3 inițializate linie st. Cum putem să ne asigurăm că aceste linii sunt aceleași. Noi folosim operatorul de comparație (==):

Cum de a copia o linie la alta. Cu ajutorul unui operator de atribuire obișnuită:

Liniile utilizate pentru cuplarea operatorului plus (+), sau o atribuire operație plus (+ =). Lăsați cele două linii sunt:

Putem obține un al treilea șir format din concatenarea primele două, după cum urmează:

Dacă vrem să adăugați la sfârșitul s2 s1. trebuie să scrie:

operațiune plus poate înlănțui clasa de obiecte șir de caractere, nu numai între ele, ci și cu siruri de caractere de tip încorporat. Puteți rescrie exemplul de mai sus, astfel încât caracterele speciale și semnele de punctuație reprezintă tipul char încorporat *. și cuvinte semnificative - obiecte de coarde de clasă:

Aceste expresii funcționează, deoarece compilatorul „știe“ cum de a converti automat obiecte, cum ar fi clasa de obiecte șir încorporate. Atribuirea posibilă și simplă a obiectului șir încorporat.

Transformarea inversă nu funcționează. Încercarea de a efectua următoarea inițializare built-in linie de tip va cauza o eroare de compilator:

Pentru a realiza această transformare, trebuie să invocați în mod explicit funcția de membru numit c_str () ( „linia C“):

c_str () returnează un pointer la un tablou de caractere care conține șir de șir în forma în care ar fi fost în tip șir încorporat. cuvinte cheie Const aici pentru a preveni „periculoase“, în mass-media vizuale moderne, posibilitatea de a modifica direct conținutul unui obiect printr-un pointer.

Caracterele individuale de tip șir de obiect. precum și built-in de tip, pot fi accesate folosind operatorul subscript. Aici, de exemplu, o bucată de cod înlocuiește toate subliniază punctul:

Cu toate acestea, aici nu folosit înlocui metoda clasei șir. și algoritmul cu același nume:

Deoarece obiectul string se comporta ca recipient, și alți algoritmi pot fi aplicate la acesta. Acest lucru face posibil pentru a rezolva funcții de clasă șir de probleme nu pot fi rezolvate în mod direct.

Mai jos este o scurtă descriere a principalelor operatori și funcții ale clasei string. link-uri din tabelul de mai duce la o descrieri de limbă rusă de pe Internet. O listă mai completă de caracteristici de clasă șir poate fi obținut, de exemplu, pe Wikipedia sau site-ul cplusplus.com.

caractere pe linie Specificarea

pentru a găsi ultima apariție a lipsei de caracter

Trebuie remarcat faptul că orice clasă șir funcție poate fi de mai multe suprasarcini - soiuri de același nume, liste diferite și tipuri de argumente.

Șirul poate fi notat ca dezavantaje de clasă:
  • absenta de la clasa instrumente integrate pentru a analiza siruri de caractere pe un set de delimitatori (funcția strtok analogice pentru siruri de caractere char *);
  • posibila încetinire a vitezei în raport cu char * cu prelucrarea datelor complexe.

Mai jos este codul pentru parsarea liniile introduse cu șirul tastaturii în cuvinte. Puteți modifica acest cod, cu excepția semnelor de punctuație care se confruntă ultimul șir de caractere vecstr [i]. precum și cuvinte care nu conțin nici un caracter alfanumeric.

Când scrieți un program de uz în continuare posibilitățile de clase standard și vectori și stringstream. Aici este prezentat un exemplu în stilul „clasic“ de analiză.

articole similare