dポイントプレゼントキャンペーン実施中!

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()の使い方が間違っている
などもあるかも知れませんが、
それよりも、(*)の呼び出し側と引数定義の部分の書き方について、
ご存知の方お教えください。よろしくお願いします。

A 回答 (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 ;
   }
  }
}
    • good
    • 0
この回答へのお礼

お礼遅くなりました。
ご指摘の方法で解決できました。ありがとうございました。

お礼日時:2008/04/23 15:52

CString だろうが、int だろうが、配列の渡しかたは同じ。

    • good
    • 0
この回答へのお礼

当方には、具体的なコーディングはイメージできませんでしたが、
とにかく、そういうことなのですね。ありがとうございました。

お礼日時:2008/04/15 09:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A