トップページ – C言語編 – 標準ライブラリのリファレンス(名前順)
トップページ – C言語編 – 標準ライブラリのリファレンス(ヘッダ別)
概要 |
文字列を指定文字数以下だけコピーする。 |
|
ヘッダ | ||
形式 |
char* strncpy(char* s1, const char* s2, size_t n); |
|
引数 |
s1 |
コピー先の配列。 |
s2 |
コピー元の文字列。 |
|
n |
コピーする最大文字数。 |
|
戻り値 |
s1 を返す。 |
|
詳細 |
s1 へ s2 の内容をヌル文字を含めて、n文字だけコピーする。s1 の末尾へヌル文字を付加する行為は行われない。 |
|
注意 |
s1
が指す配列の大きさが、コピーされる文字数に満たないとバッファオーバーフローとなる。この結果は未定義である。 |
|
使用例 |
実行結果:
|
|
関連 |
終端文字を無視してコピーを行うために、memcpy関数、あるいは memmove関数を使える。 |
|
解説章 |
本ページはアフィリエイトプログラムによる収益を得ています。
以下のリンクから商品を購入されると、Programming Place
管理者に紹介料が支払われています。
(
の直後、)
の直前に空白を入れない)return 0;
を削除(C言語編全体でのコードの統一)解説中で C95 を(C89 に対して)特別扱いしないように修正。そもそもC言語編は C95ベースなので、余計な説明は省く。
全体的に文章を見直し修正。
未定義の動作になることについての明記と、ヌル文字が付加されないケースについての注意喚起を追記。
新規作成。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |