C 文字列操作 新しいページはコチラ
提供: yonewiki
(→文字列の型変換) |
(→文字列の型変換) |
||
1,291行: | 1,291行: | ||
charからstring、System::Stringへの変換について記述しています。<br /> | charからstring、System::Stringへの変換について記述しています。<br /> | ||
System::Stringは共通言語ランタイムですので、動作させるにはプロジェクトの設定を変更しないといけません。<br /> | System::Stringは共通言語ランタイムですので、動作させるにはプロジェクトの設定を変更しないといけません。<br /> | ||
− | しかも、設定を変更しても従来のC言語の記法と共通言語ランタイムの記法を混同させるとVisual C++ | + | しかも、設定を変更しても従来のC言語の記法と共通言語ランタイムの記法を混同させるとVisual C++のコードインテリジェンス機能が完全停止しますのでコード編集が大変になりますので、このサンプルのような混同したプリプロセッサ定義をして無理やり、いろいろな変換のサンプルを記述するのは良くないです。 |
+ | |||
+ | [IntelliSenseOff.png] | ||
+ | |||
+ | 複数の文字列プリプロセッサを混同しないのが本来のやりかたになります。System::Stringへのchar変数の代入だけは複数の処理ステップが必要になります。System::String用に準備されているメソッドがconst char*の引数に対応していなかったり、独自の仕組みでしか引数をとることができないからです。ちなみに、文字列の配列でなければ、もう少し簡単に変換ができて、<br /> | ||
System::String ^systemstring = gcnew String(char*型変数);<br /> | System::String ^systemstring = gcnew String(char*型変数);<br /> | ||
のように記述するだけで、コンストラクタの初期値によって変換自体は完了させることができます。と、ここまでchar型からの変換だけで、ずいぶんと長い説明になってしまいました。このあたりの配列を使った場合の文字列変換についてまとめている文書は意外と少ないと思います。次は逆変換ですかね。こっちのほうが大変なんだよね。そしたら次はTCHARからの変換か…で、その逆変換。ふむー。先は長い。普段こんなに変換ばっかりやんないので、この記事キツイっすね。なんでこんなん書いてるんやろ。役に立つんか?ほんまに… | のように記述するだけで、コンストラクタの初期値によって変換自体は完了させることができます。と、ここまでchar型からの変換だけで、ずいぶんと長い説明になってしまいました。このあたりの配列を使った場合の文字列変換についてまとめている文書は意外と少ないと思います。次は逆変換ですかね。こっちのほうが大変なんだよね。そしたら次はTCHARからの変換か…で、その逆変換。ふむー。先は長い。普段こんなに変換ばっかりやんないので、この記事キツイっすね。なんでこんなん書いてるんやろ。役に立つんか?ほんまに… |