0

符号なし文字の配列があります:

unsigned char buffer[BUFFER_SIZE];

その配列から最初の N 個の unsigned chars を文字列に読み込みたいのですが、 をstrncpy()参照すると、signed chars へのポインタしか取得できないようです。

私は見ているべきmemcpy()ですか?

4

3 に答える 3

1

正確な構文についてはわかりませんが、可能であれば、次を使用する必要があります。

reinterpret_cast<char *>(buffer[i]);

以下も参照してください。

unsigned char* から char* に変換する良い方法はありますか?

于 2012-10-16T07:12:26.820 に答える
0

文字列が char 配列を意味する場合、C++ で最も簡単な方法は std::copy を使用することです。何もキャストする必要はありません。

unsigned char buffer[BUFFER_SIZE];
char dest[BUFFER_SIZE]

std::copy( buffer, buffer + N, dest );

std::string を意味する場合は、反復子スタイルのコンストラクターを使用してください。

std::string dest( buffer, buffer + N );
于 2012-10-16T07:52:16.527 に答える
0

strcmpデータをmemcmp比較しますが、コピーはしません...

とにかく、char *stdlib関数にキャストして使用するだけです。

于 2012-10-16T07:06:18.590 に答える