Форум программистов, компьютерный форум CyberForum.ru

Заменить цифры, написанные буквами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка выхода за пределы памяти в дебаге, в релизе ОК http://www.cyberforum.ru/cpp-beginners/thread1491866.html
Пишу код, "для себя", так скажем. пытаюсь практиковаться. Балуюсь, другими словами. В релизе то, что я написал, отрабатывает, в дебаге ошибка выхода за пределы памяти. Все бы ничего, но я не понимаю, почему именно в этом месте. В классе есть массив указателей. Есть метод, который, получив указатель на необходимый объект, в цикле, поочередно проверяет наличие адреса в ячейке массива, если...
C++ Прямое отображение слов Доброго времени суток. Дано слово pass. А отведено 13 элементов. Нужно сделать,чтобы получилось passpasspassp есть ровно 13 символов.Подскажитекак сделать http://www.cyberforum.ru/cpp-beginners/thread1491859.html
C++ Краш на моменте vector.push_back()
Доброго времени суток. Начну с короткого объяснения кода: программа считывает файл строчка за строчкой ( в строке ровно 1 слово и 1 число, записанные через пробел ), создаёт объект с этими данными и записывает указатель на этот объект в вектор. Немного исследований мною: 1) Во время отладки программы, она работает безошибочно и проходит по всем моментам. 2) При изменении поля имени с...
Перевод чисел из строки в массив чисел C++
Задача: Ввод: Во входном файле содержится несколько (до 1000) строк, в каждой строке задается одно целое число от 6 до 1000000. Конец списка чисел завершается строкой с числом 0. Вывод: В выходной файл вывести для каждого числа разложение в виде суммы трех простых чисел, как показано в примере. Если возможно несколько разложений, то вывести одно из них. Если разложения не существует, то...
C++ Вывод лишних символов в строке http://www.cyberforum.ru/cpp-beginners/thread1491829.html
Добрый день! Мне нужно решить простую задачу на множественное наследование классов (код приведен ниже). Задачу я решил, наследование проходит успешно. Есть только одна проблема. Когда я вывожу на печать текст (строки №27 и №47), перед ним появляется огромное количество мусора, а именно символов "М". #include <stdio.h> #include "stdafx.h" #include <iostream> using namespace std;...
C++ Запуск второй программы и подстановка ключей в ней Добрый День! Сразу скажу, что никакого отношения ко взлому не имеет данная тема. Имеются 2 простеньких программы: 1 - считывает из файла слова/пароли/символы, 2 - пустая программа с Hello Word, но для запуска нужно прописать тот так называемый пароль из 1-ой программы, если же совпадет. Думаю суть понятна, т.е первая программа вынимает из файла слова, и каким-то образом должна... подробнее

Показать сообщение отдельно
Looney
0 / 0 / 0
Регистрация: 13.03.2015
Сообщений: 6
02.07.2015, 16:34     Заменить цифры, написанные буквами
Требуется написать консольное приложение, в котором пользователь должен вводить текст, а выводиться должен тот же текст, но с цифрами, записанными буквами, на цифры.(ограничиться двузначными числами).

Долго пытался что-то сделать. Дошел до 2 способов.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
void main(){
    cout << "Enter the tex on english:";
    string str;
    getline(cin, str);
    str.replace(str.find("one"), 3, "1");
    str.replace(str.find("two"), 3, "2");
    str.replace(str.find("three"), 5, "3");
    str.replace(str.find("four"), 4, "4");
    str.replace(str.find("five"), 4, "5");
    str.replace(str.find("six"), 3, "6");
    str.replace(str.find("seven"), 5, "7");
    str.replace(str.find("eight"), 5, "8");
    str.replace(str.find("nine"), 4, "9");
    str.replace(str.find("ten"), 3, "10");
    str.replace(str.find("eleven"), 6, "11");
    str.replace(str.find("twelve"), 6, "12");
    str.replace(str.find("thirteen"), 8, "13");
    str.replace(str.find("fourteen"), 8, "14");
    str.replace(str.find("fifteen"), 7, "15");
    str.replace(str.find("sixteen"), 7, "16");
    str.replace(str.find("seventeen"), 9, "17");
    str.replace(str.find("eighteen"), 8, "18");
    str.replace(str.find("nineteen"), 8, "19");
    str.replace(str.find("twenty"), 6, "20");
    str.replace(str.find("thirty"), 6, "30");
    str.replace(str.find("fourty"), 6, "40");
    str.replace(str.find("fifty"), 5, "50");
    str.replace(str.find("sixty"), 5, "60");
    str.replace(str.find("seventy"), 7, "70");
    str.replace(str.find("eighty"), 6, "80");
    str.replace(str.find("ninety"), 6, "90");
    cout << str;
    system("pause");
}
Но тут дальше 1 не проходит. Видимо функция модифицирует строку из-за чего повторное использование невозможно. =(

Второй способ:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include <iostream>
#include <string>
 
 
using namespace std;
void main(){
    cout << "Enter the tex on english:";
    char str[100];
    gets(str);
    char * pch = strtok(str, " ");
    while (pch != NULL)
    {
        if (pch == "one"){
            cout << " 1";
        }
        else cout << pch<< " ";
        pch = strtok(NULL, " ");
    }
    system("pause");
}
Не очень разбираюсь в указателях, ну и тут не смог довести до ума.

Буду очень благодарен, если кто-нибудь поможет реализовать данное приложение =)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru