• 締切済み

CString型の文字列連結について

質問させて頂きます。 開発環境はVC++.netです。 CString型の文字列連結について教えて頂きたく。 CString Test[_MAX_FNAME+1]; という変数にがあるとします。 Test変数のデータは Test[0]には"2" Test[1]には"1" が格納されてるとします。 Test変数のデータをCString Text1という変数に 以下のようなソースで文字列連結処理を行ったのですが、だめでした。 何がいけないのでしょうか? for(int i = 0; i <= 2; i++) { Text1 += Test[i]; } 実行結果は Text1には"2"が格納されたままでした。 実際はText1には、"2""1"となってほしい。 分かりにくい説明とは思いますが、 回答、ヒントなどを頂けますでしょうか 宜しくお願い致します。 それと、もしよかったら、Text1の格納データは "2","1"としたいので、カンマ区切りのやりかたなども ヒントを頂けたら幸いです。 以上です。 宜しくお願い致します。

みんなの回答

noname#11722
noname#11722
回答No.2

まずNO1のプログラムをコピーして 動かしてみてください。 それでも結果は"2"になりますか?

ryou0607
質問者

お礼

色々とありがとうございます。 なぜ、できなかったのかとういう、結論はでなかったのですが、一つメソッドを作成し、値を無理やり代入する事で出来ました。 また、投稿する事があると思いますが、その時は 宜しくお願い致します。

ryou0607
質問者

補足

No1のプログラムでは、正しく「"2""1"」となりました。 なぜ、私のプログラムでは、ダメなのでしょうか???

noname#11722
noname#11722
回答No.1

CString Test[10]; CString Text1=""; Test[0]="\"2\""; Test[1]="\"1\""; for(int i = 0; i <= 2; i++) { Text1 += Test[i]; } 出力は "2""1" になりましたが・・・ 中に入っているデータは正しいですか?

ryou0607
質問者

補足

デバッカでみてみましたが、Test[1],[2]には正しい 値が入っていました。 デバッカで追っていくと、CStrigT Operator+=()でreturnされる(*This)が常にTest[1]の値です。 なぜ、でしょうか? Text1 = Test[i];で行えば、上書きされてしまうのですが、値は正常に入ります。 以上です。 回答の方をよろしくお願い致します。

関連するQ&A