Witam, mam problem z zadaniem z książki "Opus magnum" pana Grębosza
Otóż jego polecenie to
Mamy tablicę znaków, w której znajduje się długi C-string będący tekstem, składającym się z kilkunastu wyrazów. Napisz funkcje, która przekopiuje ten C-String do dwóch innych tablic. W tablicy parzyste znaleźć mają się parzyste wyrazy C-stringu, a w tablicy nieparzyste – nieparzyste wyrazy C-stringu. W obu docelowych tablicach wyrazy mają być oddzielone odstępami(spacjami), czyli znakami ' '. Funkcja ta ma być wywoływana z trzema argumentami:
- adres tablicy źródłowej,
- adres tablicy na wyrazy parzyste,
- adres tablicy na wyrazy nieparzyste.
Nie wiem dlaczego mój program nie działa i brakuje mi pomysłu na niego. Mógłby ktoś pomóc? Niedawno zacząłem naukę programowania. Oto mój kod.
#include <iostream>
using namespace std;
void kopiuj(char zro[], char parz[], char nieparz[]);
void wyswietl(char tabl[]);
int main()
{
char zrodlo[200] = {"Raz dwa trzy cztery piec szesc siedem osiem dziewiec dziesiec jedenascie dwanascie trzynascie czternascie"};
char parzyste[200];
char nieparzyste[200];
kopiuj(zrodlo, parzyste, nieparzyste);
cout << "Wyrazy parzyste:\n ";
wyswietl(parzyste);
cout << "\n\nWyrazy nieparzyste:\n";
wyswietl(nieparzyste);
cout << endl;
return 0;
}
void kopiuj(char zro[], char parz[], char nieparz[])
{
for (int i = 0; ; i++){
if(zro[i]!=char(32)) nieparz[i] = zro[i];
if (nieparz[i] != char(32)){
for(; ; i++){
nieparz[i] = zro[i];
}
}
if (parz[i] != char(32)) parz[i]=zro[i];{
for(; ; i++){
parz[i] = zro[i];
if(parz[i] == char(32)) break;
}
}
if (parz[i] == 0 || nieparz[i] == 0)break;
}
}
void wyswietl(char tabl[])
{
for (int i = 0; ; i++){
cout << tabl[i];
if (tabl[i] == 0)
break;
}
}