Loose-Info.com

Last Update 2019/12/24


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