# PBinfo #2659 – SplitText – Rezolvare C++

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

## Enunț

Cerința
Să se scrie funcția cu următorul antet:

void SplitText(const char s[], char cuv[100][30], int &n)
Funcția primește ca parametri:


un șir de caractere s de lungime maximă 200.
o matrice de caractere cuv
un număr natural n

Șirul s memorează un text format din cuvinte și separatori. Cuvintele sunt formate din litere, iar restul caracterelor din text sunt separatori. Funcția trebuie să memoreze cuvintele din s în matricea cuv astfel: Primul cuvânt în cuv[0], al doilea cuvânt în cuv[1], etc. Numărul de cuvinte va fi memorat în n.

Restricții și precizări

Lungimea maximă a șirului s este 200
Șirul s este indexat de la 0
Șirul va conține cel puțin un cuvânt
Numărul maxim de cuvinte din text este 100
Cuvintele textului au lungimea maximă 29
Utilizarea funcțiilor predefinite pentru șiruri de caractere poate conduce la erori de compilare

Exemplu:
SplitText("O suta de ani ... de Romania!", cuv, n);
Va furniza rezultatul: n=6, cuv[0]="O", cuv[1]="suta", cuv[2]="de", cuv[3]="ani", cuv[4]="de", cuv[5]="Romania".

## Cod sursă C++

```cpp
int Litera(char ch)
{
    if ('a' <= ch && ch <= 'z') return 1;
    if ('A' <= ch && ch <= 'Z') return 1;
    return 0;
}
void SplitText(char s[], char cuv[101][30], int &n)
{
    int i, j;
    n = 0;
    for (i = 0; s[i]; )
        if (!Litera(s[i])) i++;
        else
        {
            j = 0;
            while (Litera(s[i]))
                cuv[n][j++] = s[i++];
            cuv[n][j] = 0;
            n++;
        }
}
```

## Resurse

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