スポンサーリンク

strcatで文字列を結合

strcatは下記の形式で、strBeforeの後ろにstrAfterを追加することで、文字列を結合することができます。

下記がサンプルコードになります。

参考:[c言語]char型で文字列を宣言時に初期化する5つの方法

strcat(strBefore, strAfter);

$ cat sample.c
#include <stdio.h>
#include <string.h>

int main(){
	char strBefore[20] = "Before";
	char* strAfter = "After";
	
	strcat(strBefore, strAfter);
	
	printf("%s\n", strBefore);

	return 0;
}

下記が実行結果になります。
$ gcc -o sample sample.c 
$ ./sample 
BeforeAfter

スポンサーリンク

strcatの第一引数は、追加する第二引数分の余裕を確保する必要

strcatの第一引数は、追加する第二引数分の余裕を確保する必要があります。

例えば、下記のようなソースコードはabortしてしまいます。
strBefore[8]には、strAfterを追加するだけの余裕がありません。

$ cat sample1.c
#include <stdio.h>
#include <string.h>

int main(){
	char strBefore[8] = "Before";
	char* strAfter = "After";
	
	strcat(strBefore, strAfter);
	
	printf("%s\n", strBefore);

	return 0;
}

下記が実行結果になります。
$ gcc -o sample sample1.c 
$ ./sample 
Abort trap: 6

スポンサーリンク