#include <iostream>
#include <string>
using namespace std;
int main()
{
setlocale(LC_ALL, "");
int n;
string str;
cout << "Введите строку: " << endl;
cin >> str;
int l = str.size();
cout << l << " " << str << endl;
for (int i=0; i<l; i++)
cout << str[i] << " ";
return 0;
}
Данный код считывает слово и выводит каждый его символ через пробел, но при вводе кириллицы выдается следующий результат:
Введите строку:
цуйафы
12 цуйафы
? ? ? ? ? ? ? ? ? ? ? ?
Process exited with status 0
Проблемы начинаются при выводе размера слова, число не является правильным.
char *Как отличить однобайтный utf-8 символ от многобайтного (и узнать его длину (м.б. до 4-х байт)) см. в utf-8 – avp Dec 26 '22 at 22:34wchar_tимеет размер, зависящий от ОС и компилятора (https://en.cppreference.com/w/cpp/language/types). – Maxim Timakov Dec 26 '22 at 22:54