Inversarea unui șir de caractere în C++

Dându-se un șir de caractere s[], să se oglindească (inverseze) șirul, astfel încât primul caracter să se interschimbe cu ultimul caracter, al doilea caracter cu penultimul și așa mai departe.

Exemplu. Pentru șirul pisica, după inversare, se obține acisip.

Explicarea algoritmului

Fie lungimea șirului n. Atunci, ne dorim să interschimbăm poziția 0 (primul caracter) cu poziția n - 1 (ultimul caracter), poziția 1 (al doilea caracter) cu poziția n - 2 (penultimul caracter) și așa mai departe până la mijlocul șirului.

Mai exact, ca o regulă generală, caracterul de pe poziția i se va interschimba cu cel de pe poziția n - i - 1, cât timp i ≤ n - i - 1, adică 2 * i ≤ n - 1.

Implementare în C++

Următorul cod oglindește un șir de caractere citit de la tastatură, folosind algoritmul explicat mai sus.

#include <iostream>
#include <cstring> //Pentru funcția strlen

using namespace std;

int main()
{
    //Declarăm și citim șirul de caractere s
    char s[101];
    cin.getline(s, 101);

    //Inversăm șirul de caractere s
    int n = strlen(s); //Reținem în n lungimea șirului s
    for(int i = 0; 2 * i <= n - 1; i++) {
        char aux = s[i]; //Interschimbăm cele două caractere
        s[i] = s[n - i - 1];
        s[n - i - 1] = aux;
    }
    cout << s; //Afișăm șirul nou
    return 0;
}

Alte resurse sau bibliografie

DS

Autorul acestei lecții

Dominic Satnoianu

Această lecție a fost redactată de către Dominic Satnoianu.

© 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.

Așa cum este specificat și în termeni și condiții, conținutul acestei pagini este protejat de legea drepturilor de autor și este interzisă copierea sau modificarea acestuia fără acordul scris al autorilor.

Încălcarea drepturilor de autor este o infracțiune și se pedepsește conform legii.

Comentarii 0

Autentifică-te pentru a putea comenta.

Autentifică-te