Programarea cu c constructor

Introducerea șirurilor din tastatură

Puteți folosi operatorul de rețea. Operația de introducere este scrisă ca:

Când utilizați operatorul cin, aveți în vedere următoarele:

- Intrarea se termină când se apasă tasta Enter;

- Dacă există un spațiu în linie, atunci caracterele după spațiu nu sunt introduse;

- Dacă numărul de caractere introduse este mai mic decât lungimea declarată a liniei, atunci câmpurile rămase nu sunt ocupate. Prin urmare, este necesar să se efectueze o demarare preliminară a liniei;

- Dacă numărul de caractere introduse este mai mare decât lungimea declarată a șirului, atunci toate caracterele sunt introduse înainte de apăsarea tastei Enter.

Ca un operator de intrare atunci când siruri de caractere în loc de înregistrare a operatorului flux cin >> funcția de o mai bună utilizare cin.getline (), ca un flux de operator de intrare ignoră spațiile de intrare, și, în plus, pot continua elementele de scriere ale matrice atunci când un rând este dat de mai puțin spațiu decât caracterele scrise. Funcția cin.getline () are doi parametri: primul argument indică șirul la care se face intrarea, iar al doilea - numărul de caractere care trebuie introduse.

cout <

cout <

Șirul myString declarat la începutul programului poate accepta doar trei caractere semnificative și va fi reziliat de un terminator nul. Toate caracterele ulterioare introduse în acest șir de șir vor fi aruncate. După cum se poate observa din exemplul dat, atunci când se utilizează cin.getline () funcția de al doilea parametru trebuie să indice numerele mai mici sau egale cu mărimea șirului de caractere de intrare.

Uneori este mai convenabil să intrați folosind funcția get ().

Când utilizați funcția get (), luați în considerare următoarele:

- Dacă numărul de caractere introduse este mai mic decât lungimea declarată a liniei, atunci câmpurile rămase nu sunt ocupate. Prin urmare, este de dorit să se efectueze o prelegere preliminară a liniei;

- Numărul de caractere introduse nu trebuie să depășească lungimea declarată a șirului (funcția get nu controlează numărul de caractere, ceea ce poate duce la o eroare imprevizibilă);

- Intrarea se termină când apăsați tasta Enter.

cout <

cout <

Determinarea lungimii liniilor

Foarte des atunci când lucrezi cu șiruri de caractere, trebuie să știi câte caractere conține șirul. Pentru a afla informații despre lungimea unui șir în fișierul header, string.h, este descrisă funcția strlen (). Sintaxa acestei funcții este:

size_t strlen (const char * string)

Această funcție duce un pointer la începutul șirului ca singurul parametru, calculează numărul de caractere din șir și returnează întregul nesemnat (size_t). Funcția strlen () returnează o valoare mai mică decât cea alocată matricei din cauza spațiului rezervat pentru " # 92; 0 '. Fragmentul următor demonstrează utilizarea funcției strlen ():

char Str [] = "ABCDEFGHIJK";

int i = 0; // i este contorul de litere

RUS ("Verificarea copiei"); // Introducerea textului rus în bufRus

în timp ce (bufRus [i]! = '# 92; 0') // Verificați sfârșitul matricei care este copiată

În biblioteca string.h, un număr de funcții standard sunt utilizate pentru copiere.

Funcția strcpy () are un prototip:

char * strcpy (caracter * strl, const char * str2)

De exemplu, următorul fragment copiază șirul "Copy validation" în șirul "Str":

strcpy (Str, RUS ("validarea copiei"));

strcpy (Str, RUS ("validarea copiei"));

// ptr indică acum la

Când rulați programul, textul este copiat.

Funcția strncpy () diferă de strcpy () prin adăugarea unui parametru suplimentar în parametrii săi, indicând numărul de caractere care nu depășesc mai mult decât cel care va fi copiat. Sintaxa sa este:

char * strncpy (char * strl, const char * str2, size_t num)

Dacă lungimea strl este mai mică decât lungimea str2, caracterele sunt trunchiate:

char cLong [] = "012345678901234567890123456789";

strncpy (cShort, cLong, 4);

cout <

cout <

Ca rezultat, veți vedea:

Adică, de la linia cLong până la linia cShort, se copiază primele patru caractere, înlocuind astfel valoarea inițială a începutului șirului scurt.

strdup () funcționează ca un parametru primeste un pointer la linia de sursă, efectuează alocarea de memorie, copierea în zonele desemnate ale unui șir de caractere și returnează un pointer la începutul copiei liniei primite. Sintaxa funcției este următoarea:

char * strdup (const char * sursa)

str1 = char nou [21]; // alocare dinamică a memoriei

strcpy (str1, RUS ("Procedura nu a fost găsită")));

Concatenarea rândurilor

Concatenarea sau concatenarea șirurilor pot fi implementate prin adăugarea unei matrice la alta:

caracterele Str1 [10], Str2 [10], Str3 [20], Str4 [11] = ", și # 92; 0 ";

Articole similare