Program nie kopiuje calego stringu do stringu drugiego

0

W funkcji kopiuj w pewnym momencie urywa petle, nie wiem dlaczego.

#include <iostream>

using namespace std;
//*************************************************
void kopiuj(char t1[], int rozmiar, char t2[]);
void drukuj(char t[]);
//*************************************************
int main()
{
    const int rozmiar=100;
    char tabA[rozmiar]={"Adam nowak kupil nowy "};
    char tabB[]={"telefon Samsung Galaxy S5"};

    kopiuj(tabA, rozmiar, tabB);
    drukuj(tabA);


    return 0;
}
//*************************************************
void kopiuj(char t1[], int rozmiar, char t2[])
{
    int koniec=0;
    for(int i=0 ; ; i++)
    {
        if(t1[i]==0)
        {
            koniec=i; break;
        }
    }
    for(int i=koniec, k=0; ; k++, i++)
    {
        if(t2[i]!=0)
        {
            t1[i]=t2[k];
        }
        else break;
    }

}
//*************************************************
void drukuj(char t[])
{
    for(int i=0; ; i++)
    {
        if(t[i]!=0) cout << t[i];
        else break;
    }
}
//*************************************************
0

O co chodzi z tą cyfrą 0? bo na pewno nie o koniec stringa, takowy oznacza się przez '\0'. Swoją drogą nigdzie nie korzystasz z rozmiar.

0

Przeciez znak oznaczajacy koniec stringa ma wartosc 0 wedlug ASCII, wiec chyba moge tak napisac, czy sie myle?

2

tu masz blad

if(t2[i]!=0)

powinno byc k a nie i

Nazywaj zmienne lepiej to nie bedziesz sie gubic w nich.

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