@vlarkanov

Как правильно найти длину строки с кириллицей в юникоде на C++?

Как правильно подсчитать длину строки с русскими буквами, знаками препинания и пробeлами?
Пока обнаружил, что длина строки с rbhbkkbwtq получается вдвое больше верной.

int strLength = strBody.length();
std::cout << strBody << ":" << strLength ;

...

Ololo:5
Ололо:10
  • Вопрос задан
  • 482 просмотра
Решения вопроса 1
SerJook
@SerJook
кодер
Если под линуксом, то как-то так можно посчитать:

#include <cstdlib>
//....
setlocale(LC_ALL, "ru_RU.utf8");
int strLength = mbstowcs(NULL, strBody.c_str(), 0);


в винде это работать увы не будет
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Zoominger
@Zoominger
System Integrator
Пока обнаружил, что длина строки с русскими буквами получается вдвое больше верной.

Пушо кодировка UTF-8.
Хотя длина именно строки должна быть одинаковой, тут больше о размере в памяти речь идёт.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы