# PBinfo #3269 – ReverseWords – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Cerința
Scrieți funcția având următorul antet:

void ReverseWords(char s[])
Funcția primește ca parametru un șir s format din cuvinte separate prin câte un spațiu. Cuvintele sunt formate doar din litere mici. Funcția va returna, tot prin intermediul parametrului s, cuvintele în ordine inversă, separate tot prin câte un spațiu.

Exemplu:
După apelul ReverseWords("dubai dubai viata ca in rai") șirul s va fi rai in ca viata dubai dubai

Restricții și precizări

Lungimea șirului s este de cel mult 800.000 și conține cel puțin două cuvinte
șirul poate conține cuvinte de o literă
cuvintele din șir sunt separate prin exact un spațiu
șirul este indexat de la 0, începe cu o literă și se termină cu o literă

## Cod sursă C++

```cpp
#include <bits/stdc++.h>
void ReverseWords(char s[]) {
    int len = strlen(s);
    int st = 0;
    int sf = 0;
    while (sf < len) {
        if (s[sf] == ' ' || s[sf] == '\0') {
            int Cuvst = st;
            int Cuvsf = sf - 1;
            while (Cuvst < Cuvsf) {
                char temp = s[Cuvst];
                s[Cuvst] = s[Cuvsf];
                s[Cuvsf] = temp;
                Cuvst++;
                Cuvsf--;
            }
            st = sf + 1;
        }
        sf++;
    }
    int uCuvst = st;
    int uCuvsf = len - 1;
    while (uCuvst < uCuvsf) {
        char temp = s[uCuvst];
        s[uCuvst] = s[uCuvsf];
        s[uCuvsf] = temp;
        uCuvst++;
        uCuvsf--;
    }
    st = 0;
    sf = len - 1;
    while (st < sf) {
        char temp = s[st];
        s[st] = s[sf];
        s[sf] = temp;
        st++;
        sf--;
    }
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/3269)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/3269/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-3269/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
