У меня меня есть строка, в которой могут быть символы как английского, так и русского алфавитов, и мне не вполне понятно, как посчитать в такой строке количество символов.
string test = "ТестTest";
cout << test.length();
Как известно, в потоке выхода мы получим не количество символов, а количество байт, то есть не 8, а 12. А хотелось бы как-то узнать именно количество символов. Какое решение проблемы в данном ситуации будет правильным?
Самый простой вариант - использовать более широкие строки, чтобы символ помещался в один элемент. Пример:
#include <string>
#include <iostream>
int main() {
std::wstring test = L"ТестTest";
std::wcout << test.length();
}
Вывод:
8
Более правильный вариант - использовать соответствующие внешние библиотеки для поддержки Unicode, например, ICU.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости