Nếu mảng là null-chấm dứt này sẽ là khá thẳng về phía trước:sao chép không null-chấm dứt mảng char unsigned để std :: string
unsigned char u_array[4] = { 'a', 's', 'd', '\0' };
std::string str = reinterpret_cast<char*>(u_array);
std::cout << "-> " << str << std::endl;
Tuy nhiên, tôi tự hỏi cách thích hợp nhất để là gì sao chép một phi null-chấm dứt unsigned mảng char, như sau:
unsigned char u_array[4] = { 'a', 's', 'd', 'f' };
thành một std::string
.
Có cách nào để thực hiện điều đó mà không cần lặp qua mảng char chưa ký?
Cảm ơn tất cả.
Chuyển 'unsigned char *' thành 'char *' ở đây, bạn phải làm 'reinterpret_cast'. –
@VladLazarenko: Nhưng tôi không muốn thực hiện chuyển đổi đó. –
@Charles: Sau đó, mã của bạn sẽ không biên dịch trừ khi bạn thay đổi kiểu mặc định cho char thành unsigned trong cài đặt của trình biên dịch;) –