strncat() — ストリングの連結
フォーマット
#include <string.h>
char *strncat(char *string1, const char *string2, size_t count);
言語レベル
ANSI
スレッド・セーフ
はい
説明
strncat() 関数は、string2 の最初の count 文字を string1 に 付加し、結果のストリングをヌル文字 (¥0) で終了します。 count が string2 の長さより大きい場合には、 count の代わりに string2 の長さが使用されます。
strncat() 関数は、ヌル終了ストリング上で作動します。関数のストリング引数には、 ストリングの終わりを示すマークであるヌル文字 (\0) が含まれていなければなりません。
戻り値
strncat() 関数は、結合されたストリング (string1) へのポインターを戻します。
例
この例では、strcat() と strncat() の違いを説明します。
strcat() 関数は 2 番目のストリング全体を最初のストリングに追加し、strncat() は 2 番目のストリング内の指定された文字数のみを最初のストリングに追加します。
#include <stdio.h>
#include <string.h>
#define SIZE 40
int main(void)
{
char buffer1[SIZE] = "computer";
char * ptr;
/* Call strcat with buffer1 and " program" */
ptr = strcat( buffer1, " program" );
printf( "strcat : buffer1 = ¥"%s¥"¥n", buffer1 );
/* Reset buffer1 to contain just the string "computer" again */
memset( buffer1, '¥0', sizeof( buffer1 ));
ptr = strcpy( buffer1, "computer" );
/* Call strncat with buffer1 and " program" */
ptr = strncat( buffer1, " program", 3 );
printf( "strncat: buffer1 = ¥"%s¥"¥n", buffer1 );
}
/***************** Output should be similar to: *****************
strcat : buffer1 = "computer program"
strncat: buffer1 = "computer pr"
*/