私はstd :: string変数を持っています。そして、私はそれに署名されていない文字の配列からいくつかのバイトを配置する必要があります。私は最初のバイトと足を知っています。memcpy()関数を使用して、unsigned char配列からstd :: stringにバイトを置きます。
私はstd :: string :: assign関数を使用できます。私はそれをやった。
しかし、memcpy関数を使用して正しい方法でその問題を解決したいと思います。
std::string newString;
memcpy(&newString, &bytes[startIndex], length);
私はそれが間違っていることを知っています。私は研究して、いくつかのアイデアをstd :: vectorを使って見つけました。
この問題の最も洗練された解決方法をお探しください。あなたはすべてのデータを受信するための適切なサイズのバッファが存在することになるように、文字列のサイズを設定し、あなたはもちろんのdata()
std::string newString;
newString.resize(length);
memcpy((char*)newString.data(), &bytes[startIndex], length);
から取得ポインタのうち、const性をキャストする必要が
なぜあなたは 'assign()'が "正しい方法"ではないと思いますか? – Barry
"正しい方法で"は "私はそれが間違っていることを知っています" =? – crashmstr
@Barry私は2つの異なる方法でそれを解決したい。私はC++言語を学んでいます。この解決法の発見は私のためには面白いです:) –