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
