Zadanie:
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 funkcję, 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.
I czemu mi dobrze nie działa taki program: (wyświetla wyrazy ale po nich dziwne kreski)
#include <iostream>
using namespace std;
void funkcja(char source[],char parzyste[],char nieparzyste[]);
int main()
{
char source[] = { "Uwaga jest znaczaca bez znaczenia!" };
char parzyste[200], nieparzyste[200];
funkcja(source,parzyste,nieparzyste);
cout << "Nieparzyste : " << nieparzyste << endl;
cout << "Parzyste : " << parzyste << endl;
system("pause");
}
void funkcja(char source[],char parzyste[],char nieparzyste[])
{
bool parzystosc = false;
int i = 0;
for(int n = 0,p = 0; ; i++)
{
if(parzystosc == false) {nieparzyste[n] = source[i];n++ ;}
if(parzystosc == true) {parzyste[p] = source[i];p++ ;}
if(source[i] == ' ') { parzystosc = !parzystosc; }
if(source[i] == 0) { break; }
}
}