😽

C++Builder 11.3でのsprintfでの文字列作成方法

2023/09/28に公開

C++Builder11.3でUnicodeString文字列をsprintfで作る方法です。これまで+演算子で結合していましたが、いまではsprintfばっかり使っています。

今回、以下の文字列を作成するコードを書きます。

算数の計算をします。1+2=3です。

int A = 1;
int B = 2;
UnicodeString us = L"算数の計算をします。" + UnicodeString(A) + L"+" + UnicodeString(B) + L"=" + UnicodeString(A+B) + L"です。";

はい。非常に可読性が悪いです。演算子や文字列の混在によって、認知負荷が高くなっています。
このため、最近は次のような書き方をしています。

int A = 1;
int B = 2;
UnicodeString us = String().sprintf(L"算数の計算をします。%d+%d=%dです。", A, B, A+B);
// AnsiString型の場合は、AnsiString().sprintfで使用する。

文面と変数が分離されるため、大変に見通しが良くなりました。
%02d等で桁の調整等も行えるため、表現方法も高いです。

これまで面倒なことに" UnicodeString us; → us.sprintf(...) "と書いていましたが、これを知ってからsprintf大好きマンになりました。勉強はするものですね。

Discussion