strcpy- tworzenie funkcji na wskaźnikach

0

Cześć wszystkim :)

Mam problem i chciałem się poradzić szanownych forumowiczów gdzie popełniłem błąd w poniższym programie.

#include<iostream>
using namespace std;

int main()
{
    	int i;
	char ztab[100];
	char dotab[100];
	char *zwsk;
	char *dowsk;
	zwsk=&ztab[0];
	dowsk=&dotab[0];
	cin >> ztab;
	strcpy(zwsk,dowsk);
	for(i=0; dotab[i]!=0; i++)
		cout << dotab[i];
        system("pause");

	
}

void strcpy(char *zwsk,char *dowsk)
{
     
	for(0; *zwsk!=0; ++zwsk, ++dowsk)
		*dowsk=*zwsk;
	
} 

Jestem b. początkującym programistą, więc jeżeli dacie rade to piszcie w sposób "zrozumiały".

Dodam tylko że zamiar był taki, aby program wczytywał jakiś string do tablicy i kopiował go do innej tablicy za pomocą wskaźników.

0

woops Ty chyba chciałeś sam tę funckję napisać to link powyżej tylko szkoleniowo

0
char *strcpy(char *dest,const char *src)
  {
   char *ret=dest;
   while((*(dest++)=*(src++))!=0) {} 
   return ret;
  }
1

no to tak, brakuje deklaracji funkcji przed funckją main,

reszta nawet działa tylko nie znasz długości wprowadzonych danych, więc wypiszesz dodatkowo jakies śmieci

dopisz void strcpy(char*, char*); przed main

0

mwl4 w jego przykładzie nie ma c-stringów

ale powyższa odpowiedź jest chyba najlepsza poza return type char* -> void

0
 #include<iostream>
using namespace std;
void strcpy(char *wsk, char*dowsk);

int main()
{
	char ztab[100], dotab[100];
	char *zwsk, *dowsk;

	zwsk=&ztab[0];
	dowsk=&dotab[0];

	cin >> ztab;

	strcpy(zwsk,dowsk);

		cout << dotab<< endl;
        system("pause");

	
}

void strcpy(char *zwsk,char *dowsk)
{
     
	for(0; *zwsk!=0; ++zwsk, ++dowsk)
	*dowsk=*zwsk;
	*(dowsk++)=0;
	
}

Chwała Ci za pomoc Panie :)

Głównym składnikiem "x" była ta deklaracja funkcji o której zapomniałem...

W tej funkcji strcpy napisanej przeze mnie był jeszcze jeden błąd, a dokładnie to funkcja wypluwała całą tablice 100-elementową, więc należało dodać znak końca tablicy po skopiowanym słowie.

P.S
Bardzo fajnie działające Forum.
Dzięki serdeczne za pomoc ;)

0

powinieneś wziąć pod uwage użycie c-stringa, o którym wspomniał mwl4 i przeanalizować odpowiedź powyższą od mojej,

zabawa z char* w c++ jest niebezpieczna ponieważ jest to pozostałość z c i może prowadzic do UB

0

dla pewności, żeby zostać dobrze zrozumianym, chodziło mi o przypisywanie string literals do char*

char* c = "abc"; to zło w c++

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