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?