如何轻松将无符号字符串转换为字符串?

我将一个无符号字符串定义为一个包含无符号字符的字符串:

namespace std
{
   typedef basic_string<unsigned char> ustring;
}

因此,给定一个基本的std::string其字符范围从-128到127,我怎样才能轻松地将它转换为std::ustring其字符范围从0到255?


你可以使用迭代器构造函数:

ustring to_ustring(const std::string& s)
{
    return {s.begin(), s.end()};
}

你做:

using ustring = std::vector<unsigned char>;
std::string a("abc");
ustring b(a.begin(), a.end()); 

请注意,零终端不会被复制。


basic_string<unsigned char>需要专门化char_traits 。 并且没有新名称可以添加到名称空间std

链接地址: http://www.djcxy.com/p/96707.html

上一篇: How to easily convert an unsigned string to a string?

下一篇: When would you use "signed char" over "unsigned char"?