Niby prosta funkcja kopiujaca w C++

0

Mam problem z zadaniem z książki. Polega ono na tym,że mam jeden długi c string ( zdanie składające sie z kilku słów) i dwa inne c stringi, puste. Zadanie polega an tym aby parzyste słowa przekopiowac do jednej tablicy, a nieparzyste do drugiej. W każdej tablicy kolejne slowa maja byc oddzielone znakiem spacji.
Napisalem cos takiego:

#include <iostream>
#include <stdio.h>
using namespace std;
//////////////////////////////////////////////////////
void kopiuj(char zrodlo[], char parzyste[], char nieparzyste[])
{
    int odstep = 0;
    int i =0;


    for(i;zrodlo[i]!=0;i++)
    {
        if(odstep==0)
        {
            parzyste[i] = zrodlo[i];
            if(zrodlo[i]==' ')
            {
                odstep++;
                continue;
            }
        }

        if(odstep%2==0)
        {
            parzyste[i] = zrodlo[i];
            if(zrodlo[i]==' ')
            {
                odstep++;
                continue;
            }
        }

        if(odstep%2 > 0)
        {
            nieparzyste[i] = zrodlo[i];
            if(zrodlo[i]==' ')
            {
                odstep++;
                continue;
            }
        }
    }

}

///////////////////////////////////////////////////////

int main()
{

char zdanie[100] = {"dosc dlugie przykladowe zdanie ze spacjami"};
char tab1[100];
char tab2[100];

kopiuj(zdanie,tab1,tab2);
puts(tab1);
cout << endl;
puts(tab2);


    return 0;
}
 

i Tu moj problem.. z deklaracjami tab1 i tab2. Gdy zadeklaruje w ten sposob to program wyrzuca bledny wynik.natomiast gdy zrobie to tak:

char tab1[100]={"                                               "};
char tab2[100]={"                                               "};

To program dziala.. Jednak zostaja te spacje miedzy slowami. Gdzie robie blad?

1

Błąd robisz w tym, że wszystkie tablice indeksujesz tym samym indeksem i. Dla tablic wynikowych zrób oddzielne indeksy. Gdy do którejś tablicy dodasz literę, zwiększ przynależny do niej indeks.

1 użytkowników online, w tym zalogowanych: 0, gości: 1