TOP - C言語 - string.h - strncat()

文字列を連結します。
連結された文字列の最後には「\0」が付加されます。
※バッファ・オーバーフロー攻撃などへの考慮の必要あり

戻り値1 = strncat(引数1 , 引数2 , 引数3)

戻り値1      : char *
               結果としての連結文字列へのポインタ(引数1)を返す
引数1, 引数2 : char *
               引数1に引数2が連結され、結果が引数1に格納される
               引数1は連結された文字列を格納するのに十分な大きさが必要
引数3        : 引数2の最大連結文字数

(例)
#include <stdio.h>
#include <string.h>

int main ()
{
    char s1[30] = "abcdefghi";
    char s2[10] = "1234567";
    char s3[10] = "abcdefghi";
    char s4[20] = "1234567890123456789";

    char *pc = strncat(s1, s2, 10);
    printf("strncat() 1回目 引数1 : %s\n", s1);
    printf("strncat() 1回目 戻り値 : %s\n\n", pc);
    strncat(s1, s3, 5);
    printf("strncat() 2回目 引数1 : %s\n", s1);
    strncat(s1, s4, sizeof(s1) - strlen(s1) - 1);
    printf("strncat() 3回目 引数1 : %s\n", s1);

    return 0;
}

実行結果
strncat() 1回目 引数1 : abcdefghi1234567
strncat() 1回目 戻り値 : abcdefghi1234567

strncat() 2回目 引数1 : abcdefghi1234567abcde
strncat() 3回目 引数1 : abcdefghi1234567abcde12345678


Copyright(C) 2006-2018 CLAYPOT. All Rights Reserved.