• ベストアンサー

strcpyについて

strcpyでコピーしたものを配列に入れていきたいのですが、やってみると 「'=' : 'char *' から 'char' に変換することはできません。この変換には reinterpret_cast, C スタイル キャストまたは関数スタイルのキャストが必要です。」とエラーが出ました。 strcpyでコピーしたものを配列に入れることはできないのですか?

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.4

>> char des; だけでは 文字配列ではなく 文字を表す変数の定義です 文字の配列の定義をしたいのであれば 変数を配列の構文にあうようにしないといけません つまり char des[文字列の最大長]; といった構文を使うことになります このあたりは C/C++の入門書に解説されていると思います お手元のお使いのコンパイラについて書かれた参考書を準備なさることをお勧めします

n1079
質問者

お礼

回答ありがとうございました。

その他の回答 (5)

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.6

#1です。回答期限をすぎても、補足がありませんでしたので、本件につきましては、以降補足がなされましても、回答いたしませんのでご了承下さい。

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.5

もしかして void main(void) {   char src = "test string";   char dst[256]; (以下略) って書いてないか?   char src = "test string"; を   char *src = "test string"; か   char src[] = { "test string" }; に変えてみよう。

n1079
質問者

お礼

回答ありがとうございました。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

エラーが起きている箇所のソースを支障の無い範囲で公開しましょう たとえば char buf[256]; char des; scanf( "%s", buf ); strcpy( des, buf ); などといったコードですとお示しのようなエラーになるでしょう この場合 desを文字配列(またはどこかに記憶域を持つ文字型のポインタ)としないといけないことになります ソース側が問題なのか、ターゲット側が問題なのかなどの判断も質問分からでは読み取れません

n1079
質問者

お礼

>char des; としただけでは文字配列にならないのですか?

  • eroermine
  • ベストアンサー率18% (83/444)
回答No.2

文字列は普通 char * 型 配列が char list[16] などとなってるばあい要素が char 型なので入りません。 char 配列の要素は 1バイト、文字列はポインターなので 2バイト以上 キャストしても駄目です。 char *list[16] 等としないと。

n1079
質問者

お礼

回答ありがとうございました。

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

実際のエラーとなった箇所のソース 使用しているコンパイラ 使用しているOSを提示してください。 回答期限:11月25日

関連するQ&A