Я определяю длину определенных строк символов в C++ с помощью функции length()
, но заметил одну странность: допустим, я определяю в функции main
string str;
str = "canción";
Затем, когда я вычисляю длину str
на str.length()
, я получаю результат 8
. Если вместо этого я определяю str = "cancion"
и снова вычисляю длину str
, результатом будет 7
. Другими словами, ударение на букву «о» изменяет реальную длину строки. То же самое происходит и с другими акцентами. Например, если str = "für"
, он скажет мне, что его длина равна 4
вместо 3
.
Я хотел бы знать, как игнорировать эти акцентированные символы при определении длины строки; однако я бы не хотел игнорировать отдельные символы, такие как '
. Например, если str = livin'
, длина str
должна быть 6
.
wstring
. Я говорю только для окон из-за этого - person R Nar   schedule 24.11.2015o'
или что-то в этом роде, а потому, что символ Юникодаó
состоит из двух байтов. - person Baum mit Augen   schedule 24.11.2015\uff20
и большинство азиатских символов. И даже тогда не все терминалы используют одну и ту же версию стандарта... - person o11c   schedule 08.08.2018