Здравствуйте, Vostok, Вы писали:
V>Ну и, естественно, когда я пытаюсь определить длину слов, которые хранятся в виде string, то для русских слов размер, конечно, определяется некорректно. Вот и я решил исправить всё кардинально: читать всё в utf8 в wstring и получать правильные длины слов.
Не получишь ты правильные длины слов подсчетом количества Unicode code points.
Café (U+0043 U+0061 U+0066 U+00E9) — сколько букв? (Правильный ответ: 4.)
Café (U+0043 U+0061 U+0066 U+0065 U+0301) — сколько букв? (Правильный ответ: 4.)
Shuffle (U+0053 U+0068 U+0075 U+0066 U+0066 U+006C U+0065) — сколько букв? (Правильный ответ: 7.)
Shuffle (U+0053 U+0068 U+0075 U+FB04 U+0065) — сколько букв? (Правильный ответ: 7.)
Encyclopædia (U+0045 U+006E U+0063 U+0079 U+0063 U+006C U+006F U+0070 U+00E6 U+0064 U+0069 U+0061) — сколько букв? (Правильный ответ: 13.)
Ударе́ние (U+0423 U+0434 U+0430 U+0440 U+0435 U+0301 U+043D U+0438 U+0435) — сколько букв? (Правильный ответ: 8.)
(В шрифте Verdana диакритические знаки
сползают)