文字列結合の良い方法

[戻る]
初心者 2002/10/31(木) 18:10:55
いままで文字列を結合するときはstrcat関数を使ってやっていました。
今回やりたいのは文字列に数字の後ろに数字を付けていくという方法です。
そこでやってみたのですがどうもきれいにいきません。

char itoabuf[5];
char kekka[20];
CString moji1[10];
CString moji2[10];

for(int i = 0;i < 5; i++){
   //kekka変数初期化処理
   //itoa変数初期化処理
   itoa(i,itoabuf,10);
   strcat(kekka,"JIKKEN-");
   strcat(kekka,itoabuf);
   moji1[i] = kekka;

   //kekka変数初期化処理
   //itoa変数初期化処理
   itoa(i,itoabuf,10);
   strcat(kekka,"Syousai-");
   strcat(kekka,itoabuf);
   moji2[i] = kekka
}

となっています。結果としては
moji1[0] は "JIKKEN-0"
moji1[1] は "JIKKEN-1"
moji2[0] は "Syousai-0"
moji2[1] は "Syousai-1"

となります。

何がしたいかというとかなりコードが汚くなるしバッファを2つも使うので
うまいことVBのように
moji1[0] = "JIKKEN-" + CStr(i)
といったことは出来ないのでしょうか?

ちょっと思ったんですけど、itoaってかなり使いにくいですよね・・・

アイススケーター 2002/10/31(木) 19:04:03
sprintf( kekka, "Syousai-%d", i);
とかじゃダメなんですか。

tib 2002/10/31(木) 19:12:36
CStringを使ってるようですから、

moji1[i].Format( "JIKKEN-%d", i );

でもOKですね。

dairygoods 2002/10/31(木) 19:49:47
> moji1[0] = "JIKKEN-" + CStr(i)

こうしたければ、次のような関数を作っておくと良いです。

CString CStr(int i)
{
   CString s;
   s.Format("%d", i);
   return s;
}

古いスレッドには追加発言できません。