Błąd w funkcji z tablicą - co należy zmienić?

0

Witam.
Uczę się C++ na podstawie "Symfonii C++" i w dziale związanym z tablicami, podczas kompilowania kodu wyskakuje błąd w linijce:

#include <iostream>
#include <string>
using namespace std;
main()
{
    char tekst[] = { "Uwaga, tarcza zostala przepalona !" };
    char komunikat[120];
        strcpy(komunikat, tekst);  //// ---- TUTAJ BŁĄD
        cout << komunikat << endl;

        strncpy(kominukat, "1234567890abcdef", 9);
        cout << komunikat;

        strcpy(komunikat, "--A ku-ku --!");
        cout << "\n Na koniec: " << komunikat<< endl;

}
void strcpy(char cel[], char zrodlo[])
{
    for(int i = 0; ;i++)
    {
        cel[i] = zrodlo[i];
        if(cel[1] == NULL) break;
    }
}

Być może coś przeoczyłem, ale sam nie mogę sobie poradzić.

1

przed main musisz zrobic

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

deklarujesz ze gdzies dalej jest definicja funkcji. Deklaracja musi byc znana w momencie uzywania (zmienna, funkcja, klasa)

0

Zrobiłem już tak wcześniej i też wywalało mi błąd, ale nie zauważyłem, że w innym miejscu(przez zły plik nagłówkowy). Także dziękować :)
Program teraz wygląda tak:

#include <iostream>
#include <string.h>
using namespace std;
void strcpy(char cel[], char zrodlo[]);

main()
{
    char tekst[] = { "Uwaga, tarcza zostala przepalona !" };
    char komunikat[120];
        strcpy(komunikat, tekst);
        cout << komunikat << endl;

        strncpy(komunikat, "1234567890abcdef", 9);
        cout << komunikat;

        strcpy(komunikat, "--A ku-ku --!");
        cout << "\n Na koniec: " << komunikat<< endl;

}
void strcpy(char cel[], char zrodlo[])
{
    for(int i = 0; ;i++)
    {
        cel[i] = zrodlo[i];
        if(cel[1] == NULL) break;
    }
}

Uruchamia się, ale po chwili wylatuje komunikat, że program przestał działać.

1
if(cel[1] == NULL) break;

powiedz mi czy powinno byc 1 czy i ? Dlatego nazywaj lepiej zmienne, nawet te w petli

0

Ahh. Wiedziałem ,że coś przeoczyłem. Masz rację, wszystko ładnie działa. Wystarczyło "1" zamienić na "i" . Postaram się w przyszłości zwracać na to większą uwagę.
Jeszcze raz dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0