スポンサーリンク
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
スポンサーリンク