Windows XP Professional Version2002 Service Pack 2
Visual C++.NET 2003を使用しております。
VC++.NET 2003で文字列を分解する関数がないか探しています。
VBでいえばMid、Left、Right関数にあたるものです。
例として"TestCase"という8文字の文字列の"Test"の4文字だけを変数に
格納したい、といったことです。
宜しくお願い致します。
>VC++.NET 2003で
プロジェクトの種類は何でしょうか?
Windows フォームアプリケーションであれば、VBのMid、Left、Right関数は使えます。
が、いちいち参照設定しないといけないので、System::StringクラスのSubStringを使います。詳細はヘルプ(MSDN)を見てください。
MFCであれば、CStringクラスのMid、Left、Rightメソッドがつかます。
単なるC++ならば、std::stringクラスにsubstrメソッドがあります。
純粋に関数だけでやりたい場合は、strncpy、wcsncpy、_mbsncpyあたりや
sscanf、swscanfでもできそうです。
プロジェクトの種類はWindows フォームアプリケーションです。
言葉足らずで失礼致しました。
参照設定の必要がないとのことで、Substringを使用してみました。
String* a;
String* b = "TestCase";
a = b->Substring(0,4);
で"Test"の部分だけを取り出すことに成功しました。
解決しました。誠にありがとうございました。
strncpyやwcsncpyについても、いろいろと試していきたいと思います。
>strncpyやwcsncpyについても、いろいろと試していきたいと思います。
は
>Windows フォームアプリケーション
の場合とても使いづらいです。(char*型(もしくはwchar_t*型)<->String*型 に変換させるのが面倒)
最初から、char型配列で持っている場合は違いますけど。
まぁ、そのは場合はString::String(SByte*, Int32, Int32)を使うと思うけど。
String コンストラクタ (SByte*, Int32, Int32)
http://msdn2.microsoft.com/ja-jp/library/ezh7k8d5.aspx
String* a;
char b[] = "TestCase";
a = __gc new String( b, 0, 4 );
wchar_t型配列からならば、
String コンストラクタ (Char[], Int32, Int32)
http://msdn2.microsoft.com/ja-jp/library/ms131424.aspx
間違えました。
>wchar_t型配列からならば、
>String コンストラクタ (Char[], Int32, Int32)
>http://msdn2.microsoft.com/ja-jp/library/ms131424.aspx
ではなく、
String コンストラクタ (Char*, Int32, Int32)
http://msdn2.microsoft.com/ja-jp/library/ms131423.aspx
でした。
ツイート | ![]() |