strcpy関数を使用して、文字列をコピーする方法について解説します。
構文
#include <string.h>
char *strcpy(char *str1, const char *str2);
第1引数 – str1: コピー先の先頭アドレス
第2引数 – str2: コピー元の先頭アドレス
戻り値 – str1( コピー先の先頭アドレス )
サンプルプログラム
#include <stdio.h>
#include <string.h>
int main(void)
{
char str1[16] = "Yamada Taro";
char str2[16] = "Suzuki";
printf("コピー前: %s\n", &str1[0]);
strcpy(&str1[0], &str2[0]);
printf("コピー後: %s\n", &str1[0]);
return 0;
}
■出力結果
コピー前: Yamada Taro
コピー後: Suzuki
補足情報
strcpyでは、コピー元文字列の終端文字 ‘¥0’ までコピーするため、それ以降の文字は無視されます。( サンプルプログラムでは ” Taro” が無視されています )
また、memcpyのようにコピーサイズを指定することができないため、バッファオーバーフローを発生させないように注意する必要があります。
コメント