Беззнаковый string
В С++ можно создать беззнаковый тип char, который может хранить числа от 0 до 255. Я хочу использовать string похожим образом, т.е чтобы символы в нем хранились не как char, а как unsigned char. Как мне это сделать? Т.е. каким образом я могу указать string хранить беззнаковые символы?
#include <iostream>
using namespace std;
int main() {
unsigned char c = 240;
string s;
s = c;
cout << int (c);// выводит 240
cout << endl;
cout << int(s[0]);//выводит -16, а я хочу 240
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Используйте что-то вроде
using ustring = basic_string<unsigned char>;
ustring u;
unsigned char c = 240;
u = c;
cout << int (c);// выводит 240
cout << endl;
cout << int(u[0]);//выводит -16, а я хочу 240
Только при этом будет сложно в смысле работы с обычными строками - те же конструкторы будут требовать unsigned char *, не будет оператора вывода << и так далее...