strncpy
ist definiert in der string
-Bibliothek, die in C über string.h
, bzw. in C++ über cstring
eingebunden wird.
Kopiert einen String bis zum ersten Nullbyte oder bis size
Bytes kopiert wurden. Ist der Quellstring zu klein, so wird der Zielstring bis size
mit Nullbytes aufgefüllt.
#include <string.h> char * strncpy( char * target, const char * source, size_t size );
target: Zielstring
source: Quellstring
size: Anzahl zu kopierender Chars (Der Typ size_t
entspricht i.d.R. unsigned int)
Return value: Die Rückgabe entspricht target
.
Ist size
kleiner als die Länge des Quellstrings, so werden genau size
Bytes kopiert. Der Zielstring wird nicht mit einem Nullbyte abgeschlossen. Dies muss gegebenenfalls durch den Programmierer nachgeholt werden, wie es im Beispiel mit dem zweiten „Moin“-String geschieht.
#include <stdio.h> #include <string.h> int main () { char source[] = "Moin User!"; char target[] = "01234567890123456789"; char moin[20]; strncpy( target, source, 20 ); // kopiert nur 11 Zeichen (source inklusive Nullbyte) printf( "'%s'\n", target ); strncpy( moin, source, 4 ); moin[4] = '\0'; printf( "'%s'\n", moin ); return 0; }
Ausgabe:
'Moin User!' 'Moin'