C言語 strcpy関数の使い方

C logo C

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のようにコピーサイズを指定することができないため、バッファオーバーフローを発生させないように注意する必要があります。

コメント

タイトルとURLをコピーしました