strncat() — ストリングの連結

形式

#include <string.h>
char *strncat(char *string1, const char *string2, size_t count);

言語レベル

ANSI

スレッド・セーフ

はい

説明

strncat() 関数は、 string2 の最初の count 文字を string1 に追加し、結果のストリングをヌル文字 (¥ 0) で終了します。 countstring2 の長さより大きい場合には、 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"
*/

関連情報