🔧 文字列 ・ string.h ・ C89
strncpy の使い方char *strncpy(char *dest, const char *src, size_t n);
最大n文字までコピーするstrcpyの安全版だが、コピー元がn文字以上あると終端の\0が付かず、逆に短いと残りが\0で埋められるという独特の仕様に注意が必要。 固定長フィールドへの文字列格納など、余白をヌル文字で埋めたい特殊な用途に向いた関数でもある。
#include <stdio.h>
#include <string.h>
int main(void) {
char dest[8];
strncpy(dest, "hi", sizeof dest);
puts(dest);
return 0;
}
⚠️ コピー元が指定サイズ以上の長さだと\0終端されない。コピー後にdest[n-1]='\0'を明示すると安全。
アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ
strncpy と一緒に使う関数memcmp
memcpy
memmove
memset
memset_explicit
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strdup
strerror
strlen
strncat
strncmp
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。