いままで文字列を結合するときは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ってかなり使いにくいですよね・・・
sprintf( kekka, Syousai-%d, i);
とかじゃダメなんですか。
CStringを使ってるようですから、
moji1[i].Format( JIKKEN-%d, i );
でもOKですね。
> moji1[0] = JIKKEN- + CStr(i)
こうしたければ、次のような関数を作っておくと良いです。
CString CStr(int i)
{
CString s;
s.Format(%d, i);
return s;
}