Suche
Suche Menü

Strings kopieren

String Copy – Strings kopieren in C mit strcpy und strncpy

char * strcpy(char *dest, char *src);

Mit String Copy können wir den Inhalt eines Strings kopieren.

  • *dest ist Zeiger auf Ziel-Array
  • *src ist Zeiger auf Quell-Array
  • Rückgabewert ist char Zeiger auf Ziel-Array

Die Zeiger-Benennungen dest und src stehen für destinantion (Ziel) und source (Quelle). Diese Namen werden in den weiteren Kapiteln noch öfters auftreten.

In diesem Beispiel ist es nicht nötig den Rückgabewert abzufangen.

char textA[5] = "abc";
char textB[5] = "abc";

printf("Text A: %s\nText B: %s\n\n", textA, textB);

// konstante Zeichenkette in String B kopieren
strcpy(textB, "xyz");
printf("Text A: %s\nText B: %s\n\n", textA, textB);

// char-Array B zu char-Array A kopieren
strcpy(textA, textB);
printf("Text A: %s\nText B: %s\n\n", textA, textB);

Text A: abc
Text B: abc

Text A: abc
Text B: xyz

Text A: xyz
Text B: xyz

Bestimmte Anzahl von Zeichen kopieren

Mit strncpy kopiert man n Zeichen von src nach dest. Wichtig: Ist die Länge des zu kopierenden Strings kleiner als die Länge des Quell-Strings, wird das Ende-Zeichen im Ziel-String nicht gesetzt. Dies muss also manuell gesetzt werden.

char * strncpy(char *dest, char *src, int n);

char textA[10] = "123456";
char textB[10];

// kopiere in textB 3 Zeichen von textA
strncpy(textB, textA, 3);

// Ende-Zeichen setzen
textB[3] = '\0';

printf("Text A: %s\nText B: %s\n\n", textA, textB);

Text A: 123456
Text B: 123