スポンサーリンク

strcpyで文字列をコピー

下記の形式で、strDstにstrSrcの文字列をコピーします。
strDstとstrSrcは、char型の配列へのポインタになります。

	strcpy(strDst, strSrc);

下記がサンプルコードになります。
参考:[c言語]char型で文字列を宣言時に初期化する5つの方法

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

int main(){
	char strDst[20] = {0};
	char* strSrc = "After";
	
	printf("%s\n", strDst);
	
	strcpy(strDst, strSrc);
	
	printf("%s\n", strDst);

	return 0;
}

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

After

スポンサーリンク

strcpyの際はメモリリークに注意

コピー先のstrDstのメモリが足りないとメモリリークとなってしまいます。
strDstのメモリ >= strSrcのメモリ である必要があります。
もちろん終端のNULL文字も含むことにも注意が必要です。

	strcpy(strDst, strSrc);

下記は絶対にやってはいけないソースコードです。
abortします。

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

int main(){
	char strDst[3] = {0};
	char* strSrc = "After";
	
	printf("%s\n", strDst);
	
	strcpy(strDst, strSrc);
	
	printf("%s\n", strDst);

	return 0;
}

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

Abort trap: 6

スポンサーリンク