• ベストアンサー

文字列をコピーするのと定義する事の違い。

strcpy(変数名, 文字列) とするのと char 変数名 = "文字列" とすることの違いは何ですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.2

strcpyは ・対象が変数であるかどうかを斟酌しない。 ・文字列の長さを斟酌しない。 のに対し、「文字列による文字配列変数の初期化」は ・変数のみに使用できる。 ・文字列の全体が文字配列変数に収まることを保証する。 という違いがあります。

その他の回答 (2)

  • ency
  • ベストアンサー率39% (93/238)
回答No.3

あとは、string.h のインクルードの有無もありますね。 # strcpy() には string.h をインクルードする必要があると。。。

回答No.1

「文字列」が同じ内容であるとすれば、結果は どちらも同じですよね。 前者は自分がその文字列を格納するのに足りる 長さのメモリを用意しなければならないのに対 して、後者だとそこが自動になるところが違う といったところでしょうかね。 char str1[128]; // 自分で用意している(malloc等で動的に用意しても良い) strcpy(str1, "aaaaa"); char str2[] = "aaaaa";

関連するQ&A