Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 23.10.2022
Сообщений: 33

В тексте заменить цифры их прописью

09.11.2022, 18:55. Показов 734. Ответов 13
Метки c++ (Все метки)

Студворк — интернет-сервис помощи студентам
Разработайте программу для решения задачи с использованием класса string.
Слова или предложения (в зависимости от задачи) считывать в массив строк.

Написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9 словами «ноль», «один», ..., «девять», начиная каждое предложение с новой строки.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.11.2022, 18:55
Ответы с готовыми решениями:

Считать текст из файла и заменить цифры их прописью
Здравствуйте, помогите, пожалуйста, написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9...

Заменить в тексте запись числа прописью на сами числа
Данная строка. Если в строке есть слова, которые выглядят как запись цифры с помощью российско букв, замыниты эти слова соответствующими...

Заменить в произвольном тексте цифры на знак*
напишите прогр.,заменяющую в произвольном тексте цифры на знак*

13
0 / 0 / 0
Регистрация: 23.10.2022
Сообщений: 33
10.11.2022, 07:12  [ТС]
Если есть какие либо уточняющие вопросы по заданию, то я могу с радостью на них ответить, только, пожалуйста, помогите.
0
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
10.11.2022, 07:34
Цитата Сообщение от AkitoMLP Посмотреть сообщение
уточняющие вопросы
На кого, сколько и где вы учитесь? Умеете только писать, или уже немного читаете? прочтите
1
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
10.11.2022, 07:40
AkitoMLP, вопрос один: что именно у вас не получается сделать? какие уже есть свои наброски?
Если всё - то есть платный раздел
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
10.11.2022, 10:22
Лучший ответ Сообщение было отмечено AkitoMLP как решение

Решение

AkitoMLP, функция find_if с условием cymb>='0' && cymb<='9' проходите строку, не забывая перемещать итератор начала поиска, после очередной находки. В новую строку переписываете предыдущий участок (можно повозиться и избежать многократного копирования ) и каждую находку заменяете указанной строкой. Потом, новую строку присваиваете старой. В результате, текст:
"К 2-м годам он начал говорить, а к 12-ти писал достойные стихи." превратится в "К два-м годам он начал говорить, а к одиндва-ти писал достойные стихи." А глаза (и пр. органы) вашего препода увлажнятся от счастья.
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
10.11.2022, 10:27
IGPIGP, думаю достаточно std::string::replace

Осталось лишь узнать что значит "начиная каждое предложение с новой строки". Тут в самом деле не понятно как одно предложение отличать от следующего.
Моно предложить, что по точке (тогда достаточно replace '.' на '\n'), но в тексте точки могут быть и не только в конце предложения.
Впрочем, задачка учебная, сойдёт.
2
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
10.11.2022, 12:33
KSergey9, я не уверен в валидности итераторов далее по строке в случае replace. А имея в виду неизменяемость строк то и в случае одинакового размера для строкового и числового представления цифр (в русском языке завезут нескоро) итераторы не сохранятся. То есть, итерировать с пересчетом на новую позицию от начала с учётом длины строки (один - 4 символа, три - 3 символа, а девять - аж 5)? Это можно, но строка начнет реаллоцироваться и пошло и поехало. Это долго. Но я же и написал, - есть варианты чтобы:
Цитата Сообщение от IGPIGP Посмотреть сообщение
можно повозиться и избежать многократного копирования
Если не работать с std::basic_string_view то я бы создал вектор строк и отправлял туда кусочки. То есть, там бы вместо цифр появились их строковые слова. А потом, собрал бы в одну строку. Длину вектора (или std::array) можно зарезервировать сразу, посчитав слова вначале. Если хочется чтобы препод не просто обрадовался, а финишировал с пароксизмом довольства.
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
10.11.2022, 12:39
Цитата Сообщение от IGPIGP Посмотреть сообщение
я не уверен в валидности итераторов далее по строке в случае replace
Зачем вообще итераторы?
Просто все вхождения '1' заменить на "один", все вхождения '2' заменить на "два" и т.д.
Вот и все

Добавлено через 1 минуту
Цитата Сообщение от IGPIGP Посмотреть сообщение
А имея в виду неизменяемость строк
Из чего следует неизменяемость строк? это не понял
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
10.11.2022, 12:42
Цитата Сообщение от KSergey9 Посмотреть сообщение
Зачем вообще итераторы?
Просто все вхождения '1' заменить на "один", все вхождения '2' заменить на "два" и т.д.
Вот и все
для одноразовой замены, replace подходит, но если вхождений много, то может вы и не правы. Перечитайте мой опус.

Добавлено через 36 секунд
Цитата Сообщение от KSergey9 Посмотреть сообщение
Из чего следует неизменяемость строк? это не понял
Из того, что хранение строк зависит от реализации.
ps KSergey9, применяя replace, можно получить работоспособный код. Тут спору нет.
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
10.11.2022, 12:57
Цитата Сообщение от IGPIGP Посмотреть сообщение
для одноразовой замены, replace подходит, но если вхождений много, то может вы и не правы.
Осознал. Вы правы.
Все время забываю, что в С++ нет того, что требуется, зато есть куча всего другого, что пришло кому-то в нездоровую голову.
Готового простого replace (в нормальном понимании "замени вхождение подстроки на другое") в самом деле из коробки нет.

Добавлено через 2 минуты
std::regex_replace - это они, конечно, понапихали, ага. Зачем нам нормальный.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
10.11.2022, 13:37
Цитата Сообщение от KSergey9 Посмотреть сообщение
Готового простого replace (в нормальном понимании "замени вхождение подстроки на другое") в самом деле из коробки нет.
и слава богу что нет. Это же не Java. Тут придётся самому посмотреть хватит ли max_size(), чтобы впихнуть. Однако, автоматизировать неэффективный алгоритм, это как оператор индексации к списку пришить. Нужно просто стараться думать в терминах предложенных языком. Тогда его скорость будет использована.
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
10.11.2022, 13:43
Цитата Сообщение от IGPIGP Посмотреть сообщение
и слава богу что нет
Я бы понял такую позицию, и даже согласен с ней, если бы эти же самые люди не добавляли разные std::regex_replace и вообще все что только можно.
А вот когда тут так, а там сяк - то я уже даже и не знаю куда всё идет. (Знаю: к питоноплюсам)
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
10.11.2022, 13:43
Цитата Сообщение от IGPIGP Посмотреть сообщение
это как оператор индексации к списку пришить
Таких задач, к сожалению, много.
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
10.11.2022, 13:48
Цитата Сообщение от SmallEvil Посмотреть сообщение
Таких задач, к сожалению, много.
И это нормально. Хорошего всегда мало. Это главная причина того... что оно хорошее. Однако, когда я вижу экстремально плохое, хочется как-то пошутить. Или убить кого-то. Поэтому выбираю первое. Как правило)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.11.2022, 13:48
Помогаю со студенческими работами здесь

Все цифры в тексте заменить словами
Создайте программу, которая содержит TextBox1 и TextBox2 со свойствами Multiline, а также одну кнопку. При нажатии кнопки все цифры в...

10 класс. Заменить цифры в тексте на их названия
Задана строка, состоящая из цифр, букв латинского алфавита и пробелов. В строке замените каждую цифру соответствующим английским словом в...

В тексте все цифры заменить на знак пробела
Добрый день! Нужна ваша помощь. Условие: введен текст, все цифры заменить на знак пробела, подсчитать количество прописных гласных и все...

В произвольном тексте заменить арабские цифры символом #
Задается произвольный текст, содержащий не более 10 строк, в каждой строке не более 80 символов. Требуется заменить арабские цифры...

В введенном тексте заменить все цифры на пробел
написать программу которая в введенном тексте заменяет все цифры на пробел


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru