Вариант на основе стэйт-машины. Выгодное отличие здесь в том, что символ вырезается из строки и проверяется на регистр только один раз. Если бы не надо было первую букву делать заглавной - было бы еще красивее.
Автор: ildarovich
Функция Синонимайзер(Имя, Ответ = "", Стэйт = 7, б = "") Экспорт
Для ё = 1 По СтрДлина(Имя) Цикл
а = Сред(Имя, ё, 1);
Стэйт = (НРег(а) <> а) * 4 + Цел(Стэйт / 2);
Ответ = Ответ + ?(Стэйт = 2, НРег(б), ?(ё = 2, ВРег(б), б)) + ?(Стэйт = 4 ИЛИ Стэйт = 5, " ", "");
б = а
КонецЦикла;
Возврат Ответ + б
КонецФункции
Орфографическая ошибка в стэйт: стэйт Орфографическая ошибка в Синонимайзер: Синонимайзер Орфографическая ошибка в Стэйт (найдено 6): Стэйт
ЗначениеПеречисленияПоСинониму
Значение перечисления по синониму
СинонимыДопПараметровМетодов (БСП)
ЗначениеПеречисленияПоСинониму
ЗаполнитьЗначенияГлобальныхПеременных (БСП)
#1, 09 мая 2024 14:52
Можете пояснить конструкцию, особенно часть, где вычисляется очередной стэйт? Насколько понимаю, стэйты здесь - это значимость символов в строке, первый, последний, прописной... Но конструкция по вычислению стэйта непонятна.