强制std :: string使用unsigned char(0到255)而不是char(-128到127)

时间:2016-02-22 11:32:43

标签: c++ string

有没有办法强制字符串使用unsigned char而不是char?也许在构造函数中?

我需要进行算术运算(主要是递增,递减,〜(按位NOT)),我需要能够使用溢出255 ++ == 0 ...不是127 ++ == -128(和下溢0-- == 255 ......)

我不确定问题是否有意义,对此进行一些说明这是一个很好的问题(流)Why do C++ streams use char instead of unsigned char?

我没有尝试将字符串转换为unsigned char我发现很多问题如何在两者之间进行转换。

3 个答案:

答案 0 :(得分:5)

您可以使用:

typedef std::basic_string<unsigned char> ustring;

然后使用ustring代替std::string

答案 1 :(得分:4)

$( "ul.nm > li" ). $('li').hover( function() { $(this).find('.place-image').fadeIn('slow'); }, function() { $(this).find('.place-image').fadeOut('slow'); }); 实际上只是std::basic_string<char>

您需要的是std::string

this answer from this SO thread

中有一些不错的转换方法
std::basic_string<unsigned char>

coliru

答案 2 :(得分:1)

只需使用:

std::vector<unsigned char> v;