Last Update 2012/07/05
文字列を連結します。
連結された文字列の最後には「\0」が付加されます。
※バッファ・オーバーフロー攻撃などへの考慮の必要あり
連結された文字列の最後には「\0」が付加されます。
※バッファ・オーバーフロー攻撃などへの考慮の必要あり
戻り値1 = strncat( 引数1 , 引数2 , 引数3 )
戻り値1 :
char *
結果としての連結文字列へのポインタ(引数1)を返す
引数1, 引数2 :
char *
引数1に引数2が連結され、結果が引数1に格納される
引数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