У меня есть массив неподписанных символов:
unsigned char buffer[BUFFER_SIZE];
Я хочу прочитать в первых N без знака символов из этого массива в строку, однако, посмотрев на strncpy()
Кажется, это только указатели на подписанные символы.
Должен ли я смотреть на memcpy()
?
Не уверен насчет точного синтаксиса, но, если возможно, вы должны использовать:
reinterpret_cast<char *>(buffer[i]);
Также см:
Есть ли хороший способ конвертировать из unsigned char * в char *?
strcmp
а также memcmp
сравните данные, они не копируют это …
Во всяком случае, просто приведите к char *
и использовать любую функцию stdlib, которая имеет смысл.
Если под строкой вы подразумеваете массив 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 );