Wpis z mikrobloga

Mógłby mi ktoś łopatologicznie wytłumaczyć na jakiej zasadzie działa kopiowanie tablic w c++ ?

void strcpy(char cel[], char zrodlo[])

{

int i = 0;

do[

cel[i] = zrodlo[i];

}

while(cel[i++] != 0);

}

Czy ta funkcja nadpisuje dane wartości funkcji czy dodaje nowe? Bo teraz zgłupiałem. o_0

#programowanie #cpp
  • 28
@GrabkaMan: corki[0] = zosia, corki2[0] = puste. po 1 przejsciu petli corki[0] = zosia, corki2[0] = zosia. na tym polega 'kopiowanie' tablicy.

w przypadku jesli bedziesz chcial zrobic cos takiego, ze w corki2[] sa juz jakies obiekty, to przy operacji kopiowania poprzednie elementy sa 'wymazywane' i przyjmuja wartosci te z tablicy corki[].
@Nadrill: @japer: Rozumiem już. :D

Dziękuję Panowie.

Ale jeszcze jedno pytanie co do samej formy:

Dlaczego jako pierwsze daję: char cel[]?

Skąd kompilator potem wie, skąd ma przekopiować gdzie?

Zgaduję, że jest różnica między

cel[] = zrodlo[]


a

zrodlo[] = cel[]


Dobrze mówię?
@GrabkaMan: polecam operacje na wskaźnikach,

bardzo fajny sposób korzystania z tablicy,

raz musiałem zrobić algorytm w celu znalezienia słowa w tablicy znaków (planszy, czyli dwuwymiarowej). Musiałem zaczerpnąć rekursji oczywiście, zrobiłem sobie klase z planszą oraz wymiarami. Zrobiłem deklarację funkcji która pobierała hasło, koordynaty planszy i tyle. Myślałem wtedy jak zdobywać kolejne znaki. stworzyłem argument specjalnie dla wywołań rekurencyjnych, indeks poszczególnych literek. Jeśli doszedłem (xD) do długości stringa to wtedy algorytm kończył