Подпись
char
зависит от компилятора. 1
Может представлять unsigned char
или signed char
.Какой тип используется при представлении string
, зависит от компилятора - поэтому вы должны использовать char
для переносимости и ясности.Если этого недостаточно, убедит ли вас меньше набираемого текста при написании char
?:)
Опять же, компилятор думает, что string
имеет тип char *
, что может быть эквивалентно unsigned char *
или signed char *
.Если вы собираетесь работать с string
s, используйте std::vector<char>
.
1 char
- единственный тип с таким поведением.
Ссылки
1 Является ли char по умолчанию подписанным или неподписанным?