文字列をコピーする

文字列をコピーするには strcpy を使用します。
strcpyは第二引数で与えられた文字列を第一引数の文字列にコピーしますが、第一引数に既に文字が格納されている場合は、第二引数で上書きしてしまいます。
以下の例のように、yamadaという文字列が格納されている配列nameにaaという文字列をコピーし、 printf("%s\n",name); とするとaaが出力されます。
これは文字列の終了を表す\0もコピーされるためで、実際の配列の中身は先頭から順に、 a、a、\0、a、d、a、\0 が格納されています。

配列nameのサイズより大きい文字列(下の例ではaabbccdd)を配列nameにコピーした場合、 printf("%s\n",name); とするとaabbccddが出力されます。
ただし、配列の中身は先頭から順に、 a、a、b、b、c、c、d までしか格納されません。

string.hをincludeする必要があります。

strcpyの例
#include <stdio.h>
#include <string.h>
int main(void){

  char name[7]="yamada";
  int i;

  strcpy(name,"aa");
  printf("%s\n",name);
  for(i=0;i<7;i++){
    printf("%c",name[i]);
  }
  printf("\n");

  strcpy(name,"aabbccdd");
  printf("%s\n",name);
  for(i=0;i<7;i++){
    printf("%c",name[i]);
  }

  return 0;
}


初版2003/11/25 :最終更新2003/11/25
HOME