Treść ćwiczenia: "Mamy dwie identyczne tablice znakowe o identycznej długości. W każdej z nich znajduje się C-string. Napisz funkcję, która przekopiuje co drugą literę z jednej tablicy do drugiej. To znaczy: jeśli w jednek tablicy jest tekst "instytut", to w drugiej powinien znaleźć się C=string "isyu". Wybaczcie, jeśli kod będzie trochę nieczytelny, ale uczę się od niecałych dwóch tygodni. Mam takie coś:
#include <iostream>
using namespace std;
char tab1[11]={"Ziemniaki"};
char tab2[11];
void wydrukuj(char tablica[ ])
{
for(int i=0; ;i++)
{
cout<<tablica[i];
if (!tablica[i])
{
break;
}
}
}
void kopiuj2(char zrodlo[],char cel[])
{
for(int i=0;;i++)
{
if(!(i%2))
{
cel[i]=zrodlo[i];
}
if (!zrodlo[i])
{
break;
}
}
}
int main()
{
wydrukuj(tab1);
cout<<endl;
kopiuj2(tab1,tab2);
wydrukuj(tab2);
system("Pause");
}
I po przetestowaniu z tablicy drugiej pokazuje się tylko "Z". Co robię źle? W tej chwili przyszło mi do głowy, że może tablica skopiowała się jako "Z e n a i", i funkcja "wydrukuj" przerywa pracę, bo po z następuje null. Jeśli mam rację, to jak to naprawić? Dodać inną zmienną typu int dla tablicy tab2?