Fehler bei eigener strcpy-Methode
-
Hallo!
kann mir jemand sagen wo mein Fehler im Code liegt?//kopiert Inhalt von src nach dest char* my_strcpy (char* dest, const char* src) { int i = 0; while (true) { if(src[i] == '\0') break; else { dest[i] = src [i]; i++; } } return dest; }Aufruf im main:
char mystring3 [60]; const char* mystring4 = "Dies ist ein Test"; char* x = my_strcpy(mystring3, mystring4);Die Ausgabe lautet: Dies ist ein Testî"
Irgendwas stimmt mit meiner Abbruchbedingung nicht...
Hoffe ihr könnt mir helfen!
grüße
-
Du musst das \0 Zeichen mitkopieren.
-
Du hast vergessen, das Stringende ('\0') mit zu kopieren.
-
soll ich also im main schreiben:
const char* mystring4 = "Dies ist ein Test\0";
oder wie meint ihr das?
-
Nein. Du solltest vor das return noch eine Zeile "dest[i]=0;" einfügen, um dem kopierten String ein definiertes Ende zu verpassen - andernfalls wird der von nachfolgenden Lesevorgängen soweit "verlängert", bis zufällig eine Null im RAM steht.
-
stimmt ja!
danke für den tipp!grüße