====== strncat() ====== strncat ist definiert in der ''[[start|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 [[glossary: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 [[glossary:Nullbyte]] gesetzt. ===== Signatur ===== #include 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. [[c:type:unsigned]] [[c:type: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 // definiert strncat #include // definiert printf #include // 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 ===== [[c:lib:string:start|string]]: [[c:lib:string:strcat|strcat()]], [[c:lib:string:strncpy|strncpy()]], [[c:lib:string:memcpy|memcpy()]]