2017-10-26 11 views
1

私はC#の出身で、私はラインを持っていた:C++、C#のEncoding.ASCII.GetBytesに相当()

byte[] key = Encoding.ASCII.GetBytes("myString"); 

はどうやってstd::vector<unsigned char>を取得するためにC++に相当するものを持つことができますか?

+1

本当に必要ですか? 'std :: basic_string 'を使って達成できない 'std :: vector 'で達成したいことは何ですか? – Jodocus

+1

ある文字セットから別の文字セットに変換しますか?その場合は、['std :: codecvt'](http://en.cppreference.com/w/cpp/locale/codecvt)を見てください。あなたが 'unsigned char'を' byte'として必要とすれば、それらは同じものです。変換する必要はありません。 –

答えて

1

これはトリックですか?

unsigned char buffer[mystring.length()]; 
memcpy(buffer, mystring.data(), mystring.length()); 
+0

確かに、もっと複雑になると思っていました –

+0

C#コードがそう多くなるので、はるかに複雑です。このC++コードがあなたに適している場合、.NET文字列には常に[C0 Controls and Basic Latin](http://www.unicode.org/charts/nameslist/index.html)しか含まれていないか、C#コードが間違っています。 –