strncat()

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

Funktion

strncat() fügt einem String eine wählbare Anzahl von Zeichen von eines zweiten Strings an. Das Nullbyte des ersten Strings wird gesucht und mit dem zweiten String überschrieben. Nachdem die angebene Zahl von Zeichen des zweiten Strings kopiert wurden, wird abschließend ein neues Nullbyte gesetzt.

Signatur

#include <string.h>
void * strncpy( char * target, char * source, size_t size );

target: Zielspeicherblock (mindestens zusätzliche size Byte als der bereits enthaltende String)
source: Quellspeicherblock
size: Anzahl maximal zu kopierender Bytes (Der Typ size_t entspricht i.d.R. unsigned int))

Return value: Die Rückgabe entspricht target.

Fehlerquellen

Ist der target-String kleiner als die Länge des bisherigen Strings und den angefügten size Bytes, so wird in fremde Speicherbereiche geschrieben, so dass das Programm abstürzen kann oder andere Daten überschreibt, so dass das Programm beim Zugriff auf die überschriebenen Daten abstürzen kann.

Beispiel

#include <string.h>      // definiert strncat
 
#include <stdio.h>       // definiert printf
#include <stdlib.h>      // definiert EXIT_SUCCESS
 
char const * source = " World\n";
char target[20] = "Hallo";
 
int main( void )
{
  strncat( target, source, 6 );
 
  printf( "Zusammengefügt: \"%s\"\n", target );
 
  return EXIT_SUCCESS;
}

Das Newline-Zeichen wurde nicht kopiert, so dass die Ausgabe wie folgt lautet:
Ausgabe:

Zusammengefügt: "Hallo Welt"

siehe auch