🔧 文字列 ・ string.h ・ C89
strncat の使い方char *strncat(char *dest, const char *src, size_t n);
連結する文字数の上限を指定できるstrcatの安全版。ただし上限は「追加する文字数」であり、コピー先の残り容量そのものではない点に注意が必要になる。 追加後に必ず\0が付与される点は、終端が付かないことがあるstrncpyとの違いとして覚えておく。
#include <stdio.h>
#include <string.h>
int main(void) {
char buf[16] = "Hello";
strncat(buf, ", World!", sizeof(buf) - strlen(buf) - 1);
puts(buf);
return 0;
}
⚠️ 第3引数に単純にsizeof(buf)を渡すと、既存文字列の分を考慮していないためオーバーフローする典型的な誤用がある。
アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ
strncat と一緒に使う関数memcmp
memcpy
memmove
memset
memset_explicit
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strdup
strerror
strlen
strncmp
strncpy
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。