====== strncpy() ====== ''strncpy'' ist definiert in der ''[[start|string]]''-Bibliothek, die in C über ''string.h'', bzw. in C++ über ''cstring'' eingebunden wird. ===== Funktion ===== Kopiert einen String bis zum ersten [[glossary:Nullbyte]] oder bis ''size'' Bytes kopiert wurden. Ist der Quellstring zu klein, so wird der Zielstring bis ''size'' mit [[glossary:Nullbyte|Nullbytes]] aufgefüllt. ===== Signatur ===== #include 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. [[c:type:unsigned]] [[c:type:int]]) **Return value**: Die Rückgabe entspricht ''target''. ===== Fehlerquellen ===== Ist ''size'' kleiner als die Länge des Quellstrings, so werden genau ''size'' Bytes kopiert. Der Zielstring wird nicht mit einem [[glossary:Nullbyte]] abgeschlossen. Dies muss gegebenenfalls durch den Programmierer nachgeholt werden, wie es im Beispiel mit dem zweiten "Moin"-String geschieht. ===== Beispiel ===== #include #include 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' ===== siehe auch ===== [[c:lib:string:start|string]]: [[c:lib:string:memcpy|memcpy()]], [[c:lib:string:memset|memset()]], [[c:lib:string:strcpy|strcpy()]]