2016-04-14 5 views
-1

Ich möchte eine Teilzeichenkette von einem char-Array von einem x-Zeiger in einen y-Zeiger in ein anderes dest char-Array kopieren. Wie kann ich es tun mit einer Funktion aus einer Bibliothek? Ich weiß, wie man es implementiert, aber ich möchte eine Standardfunktion verwenden.Kopieren einer Teilzeichenkette vom Array 'scr' zum Array 'dst'

Zum Beispiel:

nehmen an, ich habe diese Zeichenfolge: "The_dog_is_big" und ich mag den Teil kopieren: "dog_is", die durch die 2 Zeiger gezeigt wird: x, y (x auf d und y auf s hingewiesen) zu einem Ziel-Char-Array.

+0

[man memcpy] (http://linux.die.net/man/3/memcpy) ist dein Freund. – Shark

+0

'strncpy (dst, x, y-x)'? – purplepsycho

+1

'memcpy (dest, x, y-x); dest [y-x] = 0; ' – EOF

Antwort

1
strncpy(dst, x, y - x); 
dst[y - x] = '\0'; 

von string.h

erste Argument ist das Ziel, die zweite Quelle ist, dritte die Anzahl der Zeichen ist, kopiert werden.

Sie müssen dann den Nullabschluss hinzufügen, um eine gültige Zeichenfolge zu erhalten.

+2

' strncpy() 'terminiert in diesem Fall nicht null. – EOF

+0

Danke, ich vergesse diesen Punkt immer: D – Boiethios

+1

Warum sollte 'strncpy()' dann verwendet werden, anstatt 'memcpy()'? – EOF

Verwandte Themen