C言語編 標準ライブラリのリファレンス strncat

先頭へ戻る

strncat関数

概要 指定文字数以下の文字列を連結する。
ヘッダ string.h
形式 char* strncat(char* s1, const char* s2, size_t n);
引数 s1 連結先の文字列。
s2 連結元の文字列。
n 連結する最大文字数。
戻り値 s1 を返す。
詳細 s1 の末尾に s2 を n文字だけ連結する(s1 の末尾にあったヌル文字が s2 の先頭の文字で上書きされる)。s2 の終端にあったヌル文字は連結しない。
s2 に含まれている文字数が、n に満たない場合は、s2 の全体が連結される。
n文字分の連結を終えた後、s1 の末尾にヌル文字が付加される。そのため、結果として s1 には、「strlen(s1) + n + 1」以上の大きさが必要である。
注意 s1 が指す配列に、連結後の文字列を許容できるだけの大きさが必要である。不足していた場合、バッファオーバーフローになるので、その結果は未定義である。
連結結果が含まれる範囲と、連結元の範囲とが重複していた場合の動作は未定義である。
使用例
#include <stdio.h>
#include <string.h>

int main(void)
{
    char s[80];

    strcpy( s, "abcde" );
    puts( strncat( s, "fghij", 3 ) );
    puts( s );

    return 0;
}

実行結果:

abcdefgh
abcdefgh
関連 連結する最大文字数を指定しない strcat関数がある。
ワイド文字列版の wcsncat関数がある。
解説章


参考リンク



更新履歴

'2018/4/22 解説中で C95 を(C89 に対して)特別扱いしないように修正。そもそもC言語編は C95ベースなので、余計な説明は省く。

'2018/4/17 全体的に文章を見直し修正。

'2018/1/22 新規作成。



標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ


はてなブックマーク Pocket に保存 Twitter でツイート Twitter をフォロー
Facebook でシェア Google+ で共有 LINE で送る rss1.0 取得ボタン RSS
管理者情報 プライバシーポリシー