1

C++ の場合:

0x01文字列テキストに追加したい場合は、次のようにしますtext += (char)0x01

0x02文字列テキストに追加したい場合は、次のようにしますtext += (char)0x02

追加したい場合0x0i( 0 から 9 までiの未署名の場合int)、どうすればよいですか?

編集:私はおそらく明確ではありませんでした。したがって、0x01 とは、16 進数で 01 として指定された文字を意味します。したがって、上記で i が (10 進数で) 整数である場合、3 と言うと、0x03 を追加したいと思います (したがって、これは 10 進数で 48 + として指定された文字ではありません)。 3)。

4

3 に答える 3

4

あなたは直接行うことができます

text += (char)i;

0x0i == iifiは 0 から 9 の間だからです。

于 2012-06-10T00:22:51.907 に答える
1

もう1つの可能性-代わりに使用できますpush_back。パラメータタイプとして文字列char_typeを使用するため、明示的なキャストは必要ありません。

text.push_back(i);

公平を期すために、どちらかを明示的にキャストする必要はないことを付け加えておき+=ます。単にtext += i;うまくいくでしょう。例えば:

std::string text; 
for (int i=0; i<9; i++)
     text += i;

text += i;またはのいずれかを使用text.push_back(i);すると、「\ x00 \ x01 \ x02\x03」を含む文字列が生成されます。

于 2012-06-10T00:35:23.667 に答える
0

その ASCII 値を生成する必要があります。'0'は 48 で、'9'9 + 48 です

text += (char)( i + 48 ) ;

が複数桁の数値である場合iは、それをその数字に解析し、同じ手法を使用して等しい文字列を生成できます。

于 2012-06-10T00:23:43.530 に答える