char⇔String 型変換


まや  2006-04-07 20:00:32  No: 61165  IP: 192.*.*.*

はじめまして。最近  VC++勉強し始めたのですが、はじめからつまづいています。。。。初歩的なことで、申し訳ありませんが、お力を貸してください。すいません。

題名のも書きましたが、char⇔String  型変換はできるものなのでしょうか。textboxに計算結果、文字などの入出力を行いと思っております。

編集 削除
επιστημη  2006-04-07 21:38:08  No: 61166  IP: 192.*.*.*

その前に質問。

String型ってなんですか?

System::String ?
std::string ?
CString ?

編集 削除
まや  2006-04-08 08:15:02  No: 61167  IP: 192.*.*.*

まやです。
すいません。System::Stringです。

編集 削除
Blue  2006-04-08 11:14:57  No: 61168  IP: 192.*.*.*

char ってことは、一文字ですよね?

char c = 'a';
String^ s = gcnew String( c, 1 );
// String( Convert::ToChar( c ), 1 );とかのほうがよいのかなぁ。

char*  とかの場合は以下の様

char str[] = "abc";
String^ s = gcnew String( str );

編集 削除
Blue  2006-04-08 11:16:51  No: 61169  IP: 192.*.*.*

あ、VC2005でかいています。
それ以外の場合である場合、環境を明示しないあなたの責任ですので、
その際はうまいことMC++コードに変換してください。(といってもたいして難しくないが)

編集 削除
だるた  2006-04-10 13:05:12  No: 61170  IP: 192.*.*.*

『Visual C++ .NET で System::String* から char* に変換する方法』

http://support.microsoft.com/default.aspx?scid=kb;ja;311259

編集 削除
Blue  2006-04-10 13:32:36  No: 61171  IP: 192.*.*.*

あ、反対もあったんですね。

System::String→char は情報落ちしそうですが。
(System::Stringの1文字は2バイト,charは1バイト)

編集 削除
Blue  2006-04-10 14:10:26  No: 61172  IP: 192.*.*.*

一応サンプル。

System::String^ s = L"ABC";
array<unsigned char>^ b = System::Text::Encoding::GetEncoding(L"Shift_JIS")->GetBytes(s);

// 2バイト目の文字を取得
char c = (char)b[1];

編集 削除
まや  2006-04-13 22:18:47  No: 61173  IP: 192.*.*.*

いろいろ、教えていただきありがとうございます。
具体的に、ひとつ教えていただけますでしょうか。
textbox1に10を入れ、textbox2に10(textbox1の値)+5の結果を表示させるにはどのようにするのでしょうか。

編集 削除
επιστημη  2006-04-13 22:59:41  No: 61174  IP: 192.*.*.*

int n = 10;
textBox1->Text = n.ToString();
textBox2->Text = (System::Int32::Parse(textBox1->Text) + 5).ToString();

編集 削除
Blue  2006-04-13 23:05:39  No: 61175  IP: 192.*.*.*

やっぱそういうことだと思った。(char型関係ないですな)

一応MC++(VC.NET)の過去ログあったんですけどね。
http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200509/05090014.txt

編集 削除
επιστημη  2006-04-13 23:22:24  No: 61176  IP: 192.*.*.*

初心者ってことで、ひとつだけ注意。
この文法VC++(つかC++/CLI)だけどC++ではありません。
いわば方言(microsoftの独自拡張)です。

編集 削除