kopiowanie tekstu do drugiej tablicy

0

mam program mam on dodac tekst z drugiej tablicy do pierwszej ale tylko tyle liter na ile pozwala rozmiar tablicy 1, wszystko dziala kopiuje tyle ile trzeba tylko ze dodatkowo na koncu jakies dziwne znaki sie wyswietlaja. co moze byc tego przyczyna?

#include "stdafx.h"
#include <iostream>

using namespace std;

void kopiowanie(char tab[], int rozm, char tab2[]);


int _tmain(int argc, _TCHAR* argv[])
{
	const int rozmiar = 21;
	char tablica1[rozmiar]={"takie tam xD "};
	char tablica2[]={"dalszy tekst"};

	kopiowanie(tablica1,rozmiar,tablica2);

	cout<<tablica1;

	getchar();
	return 0;
}

void kopiowanie(char tab[], int rozm, char tab2[])
{
	int i=0;
	int j=0;

	for(i;tab[i]!=0;)
		i++;

	for(j;tab[j]!=0&&i<rozm;)
	{
		tab[i]=tab2[j];
		i++;
		j++;
	}
	
}
0
const int rozmiar = 21;
char tablica1[rozmiar]={"takie tam xD "};

To jest bardzo zle przyzwyczajenie, uzywaj w takich przypadkach #define

for(j;tab[j]!=0&&i<rozm-1;)   // -1 bo i tak w ostatniej komorce umiescisz znak konca ciagu => 0
  tab[rozm-1]=0; // '\0'

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