|
0 / 0 / 0
Регистрация: 25.06.2011
Сообщений: 20
|
|
перевод текста в латиницу02.07.2011, 14:22. Показов 9879. Ответов 41
Метки нет (Все метки)
Здравствуйте. Я только недавно занялся программированием и нужна помощь в одной части программы. Задача: открыть любой документ word .doc считать из него текст и перевести в латиницу транслитом. Есть затруднения со второй частью программы. Работа проходит в среде visual c++ 2010 windows forms application. Заранее спасибо за помощь
0
|
|
| 02.07.2011, 14:22 | |
|
Ответы с готовыми решениями:
41
Перевод кириллицы в латиницу Перевод Символов С Кириллицы На Латиницу |
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
|
| 02.07.2011, 16:27 | |
|
Например, можно использовать std::map<std::string, std::string>, где первой указываете кириллицей, то что будете искать, а второй строкой - латиницей, на которуй будете заменять найденое.
0
|
|
|
|
|
| 02.07.2011, 17:22 | |
|
Вот мой проект по транслитерации - поддерживаются 2 режима
Русский-в Английский (rus2eng) и обратный. Программа без кнопок, использовано контекстное меню, скриншот меню ниже. Нужно октрыть файл, а затем использовать подпункты меню translit. В программке также юзается mmsystem.h - музыка чтоб не скуать кода транслитерируется большой объём текста...Юзайте на здоровье
2
|
|
|
0 / 0 / 0
Регистрация: 25.06.2011
Сообщений: 20
|
|
| 03.07.2011, 20:35 [ТС] | |
|
конкретно, мой вопрос заключается в следующем:
нужно посимвольно разобрать строковую переменную используя массив (или без него), например, в Паскале это выглядело бы так: s - строковая переменная, i - счетчик цикла for i:=1 to length(s) do begin if s[i]='Б' then s[i]:='b'; if s[i]='В' then s[i]:='v'; ... и т.д. Вопрос: каким образом перевести это в С++, просто я не силен в операторах.
0
|
|
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
|
| 03.07.2011, 21:29 | |
|
На с++ это будет выгледеть так:
Код C++ 123456789101112 std::string st;...for(size_t i = 0; i<st.length; ++i){ if(б == st[i]) { st[i] = b; } ...} Как-то так. Я не уверен в адресации, надо проверять.
0
|
|
|
0 / 0 / 0
Регистрация: 25.06.2011
Сообщений: 20
|
|
| 03.07.2011, 21:33 [ТС] | |
|
Насколько я понимаю std:: - это объявление массива?
а не подскажите, как его задать в windows forms application а не в консоли?
0
|
|
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
|
| 03.07.2011, 21:41 | |
|
Нет, форум глюканул std::string st - это объявление строки, только надо подключить: #include <string>.
0
|
|
|
0 / 0 / 0
Регистрация: 25.06.2011
Сообщений: 20
|
|
| 04.07.2011, 18:47 [ТС] | |
|
Возникла проблема. Данный способ записи - st[i] - не работает в windows forms application. При компиляции во фрагменте условия if (st[i] == 'Б') st[i] = 'b' выдает следующие ошибки:
1)if (st[i] == 'Б') - невозможно преобразование const char в int; 2)st[i] = 'b' - не обладает функцией set (то есть, как я понимаю, нельзя установить нужное значение символа) Помогите, пожалуйста, как данное условие записать именно в windows forms application
0
|
|
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
||||||
| 04.07.2011, 21:31 | ||||||
|
Правильно делать так:
0
|
||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 05.07.2011, 08:11 | |
|
Airhand, нет естесна не сработает. strcmp принимает 2 const char*.
0
|
|
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
|
| 05.07.2011, 11:03 | |
|
Ну тогда .str() юзать к st[i]. Я ж говорю не компилил.
0
|
|
|
0 / 0 / 0
Регистрация: 25.06.2011
Сообщений: 20
|
|
| 05.07.2011, 19:07 [ТС] | |
|
Попытался тоже самое оформить в windows forms application:
if (st[i] == 'м') new_st += 'm' Во время компиляции пишет: Необработанное исключение типа "System.IndexOutOfRangeException" произошло в transliter.exe Дополнительные сведения: Индекс находился вне границ массива. Я так понимаю это потому, что new_st не является массивом, а только стороковой переменной. Подскажите, как это перевести именно в WINDOWS FORMS APPLICATION!!!!!!!
0
|
|
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
|
| 05.07.2011, 19:18 | |
|
Исключение говорит о том, что индекс вышел за границы. Это происходит во время запуска, а не компиляции. Во время компиляции не могут происходить исключения. Это механизм времени выполнения. Продебажте свою прогу или поставте бряк на первом итераторе цикла. Неизвестно, когда происходит исключение.
0
|
|
|
0 / 0 / 0
Регистрация: 25.06.2011
Сообщений: 20
|
|
| 07.07.2011, 21:32 [ТС] | |
|
Скажите, в каком месте условия конкретно ставить break и только ли его, мне говорили, что он работает с switch() и default
0
|
|
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
|
| 07.07.2011, 21:40 | |
|
Тут лучше конструкцию switch{case:} юзать, чем кучу if. break ставится в скобках case: case 1: {... //toDo something; break;}Доскональный синтаксис смотрите в хелпе.
0
|
|
|
0 / 0 / 0
Регистрация: 25.06.2011
Сообщений: 20
|
||||||
| 08.07.2011, 21:21 [ТС] | ||||||
0
|
||||||
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
|
| 08.07.2011, 21:38 | |
|
На чём этот фрагмент написан. В С++ нет String. Там есть std::string. С маленкой буквы, да и то в STL.
0
|
|
|
0 / 0 / 0
Регистрация: 25.06.2011
Сообщений: 20
|
|
| 08.07.2011, 21:39 [ТС] | |
|
Это c++ windows forms, а не console, я говорил это с самого начала, там объявляется именно так
0
|
|
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
|
| 08.07.2011, 21:40 | |
|
0
|
|
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
|||
| 08.07.2011, 21:49 | |||
|
0
|
|||
| 08.07.2011, 21:49 | |
|
Помогаю со студенческими работами здесь
20
Перевод кирилицы в латиницу/Печать выделенных строк Трансляция текста с кириллицы на латиницу Перевод русских букв на латиницу и подсчёт количества букв перевод текста на C# Перевод текста Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|