Читайте неподписанные символы в строку

У меня есть массив неподписанных символов:

unsigned char buffer[BUFFER_SIZE];

Я хочу прочитать в первых N без знака символов из этого массива в строку, однако, посмотрев на strncpy()Кажется, это только указатели на подписанные символы.

Должен ли я смотреть на memcpy()?

0

Решение

Не уверен насчет точного синтаксиса, но, если возможно, вы должны использовать:

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

Также см:

Есть ли хороший способ конвертировать из unsigned char * в char *?

1

Другие решения

strcmp а также memcmp сравните данные, они не копируют это …

Во всяком случае, просто приведите к char * и использовать любую функцию stdlib, которая имеет смысл.

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 );
0
По вопросам рекламы [email protected]