messagebox::showと配列について

解決


test  2008-11-15 23:54:14  No: 69240

よろしくお願いします。

環境はVisualC++2005Expressです。

array<char>^ C = gcnew array<char>(1);

C[0] = 'A';

System::Text::StringBuilder ^sp = gcnew System::Text::StirngBuilder();

    sp->AppendLine( C[0].ToString() );

MessageBox::Show(sb->ToString(),L("test") );

のデータをMessagbox::showで表示させると文字コードが表示されます。
格納した文字を表示させるにはどうするのでしょうか?
配列の宣言で長い文字列を宣言する方法は
string^ではないのでしょうか?

array<string^>^ C = gcnew array<string^>(1);

お願いします。


Blue  2008-11-16 02:10:23  No: 69241

Char型とchar型は違います。
C++/CLIではStringクラスはUnicodeで文字列を保持しています。
ですのでChar型(=wchar_t型)を基本的に扱うほうが普通でしょう。

よって、

Char c = L'A';
String^ s = c.ToString();

とすると文字コードではなくなります。
char型のままであれば、一度Char型にキャストすれば出来ます。

char c = 'A';
String^ s = ((Char)c).ToString();

>配列の宣言で長い文字列を宣言する方法は
>string^ではないのでしょうか?
は何をおっしゃっているのかよくわかりません。
C#とちがってstringというものはありませんので。
(STLのstd::stringならあるが、マネージドクラスではない)


test  2008-11-16 04:23:30  No: 69242

回答ありがとうございます。
無事、文字を表示させることができました。
ありがとうございました。

>配列の宣言で長い文字列を宣言する方法は
>string^ではないのでしょうか?
>は何をおっしゃっているのかよくわかりません。

Char型の配列では、一文字の文字列しか使うことができません。
2文字、3文字以上の文字列を入れる配列のデータ型は
何になるのでしょうか?

CLIなどのHPで調べましたが、int型とChar型の配列しか載っておらず
見つけることができませんでした。

すいませんが、よろしくお願いします。


Blue  2008-11-16 08:12:41  No: 69243

>2文字、3文字以上の文字列を入れる配列のデータ型は
でしたら
array<String^>^ でよいはず。
配列自体も可変であれば、List<String^>^ で。

Generic::List<String^>^ sl = gcnew Generic::List<String^>();
sl->Add(L"あいうえお");
sl->Add(L"かきくけこ");


TEST  2008-11-16 10:47:42  No: 69244

何度も回答ありがとうございます。
基本的なことを丁寧に回答して頂いて、感謝しています。
また、何かありましたら、よろしくお願いします。
ありがとうございました。


test  2008-11-16 10:49:08  No: 69245

解決時のチェックを入れるの忘れまして、チェックを入れさせて頂きます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加