- ベストアンサー
CStringの配列要素を関数で受け渡しするには?
VC6を使っています。 それと当方、古いC言語しか分からず、 CStringの使い方で、ハマってしまっています。 よろしくお願いします。 (例) main関数側で、 CString buf[3]; buf[0] = "abc"; buf[1] = "012"; buf[2] = "xyz"; これを関数に渡して、それぞれの文字列内を加工したいのです。 func1(3,buf); ---(*) func1(int num, CString aaa) ----(*) { int i; for(i=0; i<num; i++){ if(i % 2 == 0){ aaa[i] += ".000"; }else{ aaa[i] += sprintf(".%03d",i); } } } たとえば、上記のような感じです。sprintf()の使い方が間違っている などもあるかも知れませんが、 それよりも、(*)の呼び出し側と引数定義の部分の書き方について、 ご存知の方お教えください。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
CStringクラスに参照代入は使えない(とオモタ) CStringクラスをバッファアドレスとして指定できない(とオモタ) func1(3,buf); func1(int num, CString *aaa) { int i; CString workStr ; for(i=0; i<num; i++){ if(i % 2 == 0){ workStr = aaa[i] + ".000"; aaa[i] = workStr ; }else{ workStr.Format("%s.%03d",aaa[i],i); aaa[i] = workStr ; } } }
その他の回答 (1)
- koko_u_
- ベストアンサー率18% (459/2509)
CString だろうが、int だろうが、配列の渡しかたは同じ。
お礼
当方には、具体的なコーディングはイメージできませんでしたが、 とにかく、そういうことなのですね。ありがとうございました。
お礼
お礼遅くなりました。 ご指摘の方法で解決できました。ありがとうございました。