strncpy()

strncpy ist definiert in der string-Bibliothek, die in C über string.h, bzw. in C++ über cstring eingebunden wird.

Funktion

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.

Signatur

#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.

Fehlerquellen

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.

Beispiel

#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'

siehe auch