C++ UnicodeStringでchar*変換とか検索とかfloat変換とか


普通の文字列(char*)にしたいとき

vectorに放り込むときとかに。
BuilderなんでAnsiString前提感はあります。

01.cpp
UnicodeString hoge = "aiueo";
char* ch = "";

strcpy(ch, AnsiString(hoge).c_str()); // ch には "aiueo"が入る

検索するとき

AnsiStringだとfind() UnicodeStringはPos()
ちなみにfindのreturnはunsignedです。警告にお気をつけを。
std::string.find()もsize_tなので警告注意です。見つからない場合はstd::string::nposです。
unsigned int を別個作るとかそんな感じで。

02.cpp
UnicodeString hoge = "aiueo";
int ret = 0;

ret = hoge.Pos("u"); // ret = 3
ret = hoge.Pos("ue"); // ret = 3
ret = hoge.Pos("uo"); // ret = 0

float変換するとき

03.cpp
UnicodeString hoge = "3.141";
float ret = 0;

ret = hoge.ToDouble();
hoge = FloatToStrF(ret, ffFixed, 7, 3);

UnicodeStringにしたいとき

TCHARでよくね感はあります

04.cpp
UnicodeString hoge  = "";
AnsiString    hoge2 = "aiueo";
std::string   hoge3 = "kakikukeko";

hoge = UnicodeString(hoge2.c_str());
hoge = UnicodeString(hoge3.c_str());

数字をUnicodeStringに入れる

なんとそのまま入ります

04.cpp
int n = 20;
UnicodeString hoge = n;

参考