1


2

C ++の文字のASCIIコードを使用してstd :: wstringを作成する方法は?

30、29、28、27、26、25のASCII値を持つ文字でwstringを作成する必要があります。

VB6では、asc(30)+ asc(29)+などを実行します…​

C ++と同等のものは何ですか?

ありがとうございます。

2 Answer


5


これは、文字セット変換に関するトリックの質問ですか? :)標準では、ASCII文字がwchar_t内のASCII整数値で表されることを保証していないため(ほとんどのコンパイラ/システムではこれが当てはまります)。 問題があれば、適切なロケールを使用してcharを明示的に拡張します。

std::wstring s;
std::locale loc("C"); // pick a locale with ASCII encoding

s.push_back(std::use_facet >(loc).widen(30));
s.push_back(std::use_facet >(loc).widen(29));
s.push_back(std::use_facet >(loc).widen(28));

末尾の0で終了しないでください。.c_str()を呼び出してwstringをwchar_t *に変換すると追加されます。


1


std

wstringは、文字列を装ったstd :: vectorにすぎません。

したがって、次のようにpush_backメソッドを使用できるはずです。

std::wstring s;

s.push_back(65);
s.push_back(0);

std::wcout << s << std::endl;

0ターミネーターを忘れないでください!