Przeniesienie jednej tablicy do drugiej.

0

Witam. Uczę się dopiero jezyka C++ i chce napisac program, ktory przeniesie wartosci z jednej tablicy do drugiej bez uzycia biblioteki cstring.

#include<iostream>
using namespace std;
void funkc(char komunikat[], char tekst[]);
int main()
{
	char tekst[]={"Uwaga, tarcza zostala przepalona"};
	char komunikat[120];
	funkc(komunikat, tekst);
		cout<<komunikat<<endl;
}
void funkc(char komunikat[], char tekst[])
{
	int i=0;
		do
		{
			tekst[i]=komunikat[i];
		}
		while(tekst[i++]!=0);
}

niestety program nie wyswietla mi bledow tylko podczas kompilowania program przestaje dzialac i zamyka sie.

0

bo wpisujesz do tekstu a nie do komunikatu (komunikat nie jest zainicjalizowany i nie wiadomo kiedy będzie '\0')
skoro piszesz w c++ to zapoznaj się ze stringiem

0

Zacznij używać const gdyby napisałeś:
void funkc(char komunikat[],const char tekst[])
to kompilator by wskazał gdzie masz błąd.
poza tym to brzydki sposób na kopiowanie.

void kopiuj(char *dst, const char *src)
  {
   while(*src) *(dst++)=*(src++);
   *dst=0;
  }
0

#include <iostream>
#include <string>
int main() {
std::string tekst = "hello";
std::string bam = tekst;
std::cout << bam << std::endl;
//lub
char *t = "world";
char *k = t; //nie kopiujemy, a podajemy wskaźnik
std::cout << k;
char a[120];
unsigned i = 0; while(k[i] != ' ') a[i] = k[i++]; //kopia
std::cout << a; //lub funkcja podana prędzej
}
testowałem pod g++ najnowszym i działa poprawnie :)

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