====== 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()]]