Почему при вводе входных данных на русском языке программа работает некорректно?
Задача на С++: Подсчитать количество символов в каждом слове,у
всех символов поменять регистр
Из предоставленных данных можно лишь сделать вывод, что виноваты руки.
Но если вы, в добавок, покажете исходный код программы, то тогда уже можно будет попытаться найти место, где именно эти руки накосячили.
Есть такая штука как суррогатные пары. Это символы, которые кодируются двумя другими. Вообще кодироваться они могут как угодно, но суть одна, "весит" такой символ больше, и определяется как два. Есть символы которые определяются как 3, 4 и более символов. В основном это разные смайлики.
Потому что кодировка русских букв - сложный вопрос. Например, в utf-8 русские буквы кодируются двумя байтами, поэтому и получается длина 12. И когда вы циклом проходите по строке, то вы проходите не по символам, а по байтам, образующим эти символы.
Не стоит использовать C++ для работы с русскими буквами.