Некоректный вывод индекса функцией find()

Не понимаю, почему такое странное поведение у функции find().

В результате из примера ниже, в консоли печатается не 5, а 10. Почему так происходит?

string b = "Издательский бизнес сегодня немыслим без компьютерных издательских систем,";

auto a = b.find("е");
cout << a << endl;

Ответы (1 шт):

Автор решения: user393524

В вашей реализации строка, состоящая из русской буквы, скорее всего, занимает 2 char, поэтому позиции умножаются на 2. Простое деление на 2 непереносимо, но может работать в вашем случае.

http://utf8everywhere.org/

→ Ссылка