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

Связать программу - C++

Восстановить пароль Регистрация
 
Jurlique
0 / 0 / 0
Регистрация: 13.11.2013
Сообщений: 46
09.12.2013, 18:39     Связать программу #1
Надо написать программу, в которую вводишь текст и она выводит этот же текст только цифры от 0 до 9 заменены словами.
4 = four
а если
45 = 45 по отдельности не должно писать как four five.

C++ (Qt)
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
39
40
41
42
43
#include <iostream>
#include<string>
 
using namespace std;
 
void myfunc(char x);
 
int main()
 
{
 
    string str;
    getline(cin, str);
 
    void myfunc();
 
    return 0;
 
}
 
 
void myfunc(char x){
 
 
        switch (x)
 
        {
        case '0': cout << "zero"; break;
        case '1': cout << "one";  break;
        case '2': cout << "two";  break;
        case '3': cout << "three";  break;
        case '4': cout << "four"; break;
        case '5': cout << "five"; break;
        case '6': cout << "six"; break;
        case '7': cout << "seven"; break;
        case '8': cout << "eight"; break;
        case '9': cout << "nine"; break;
 
        }   
 
        cout << x;
 
    }
Я не могу понять как связать, этот перебор от 0 до 9 с текстом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2013, 18:39     Связать программу
Посмотрите здесь:

Как связать код с графикой? C++
C++ Связать классы.
C++ связать буквы в слово
Связать Matlab и visual studio C++
Связать две функции C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
МаксимТ
 Аватар для МаксимТ
47 / 47 / 4
Регистрация: 17.08.2012
Сообщений: 225
09.12.2013, 18:48     Связать программу #2
Цитата Сообщение от Jurlique Посмотреть сообщение
Я не могу понять как связать, этот перебор от 0 до 9 с текстом.
пользователь ввел строку,

(вместо 15 строки):
затем в цикле идет перебот символов строки,
если символ - не цифра то выводим на экран, а если цифра то вызываем функцию myfunc()

Добавлено через 1 минуту
Цитата Сообщение от Jurlique Посмотреть сообщение
а если
45 = 45 по отдельности не должно писать как four five.
правдо этого условия я не понял
Jurlique
0 / 0 / 0
Регистрация: 13.11.2013
Сообщений: 46
09.12.2013, 19:44  [ТС]     Связать программу #3
Цитата Сообщение от МаксимТ Посмотреть сообщение

Добавлено через 1 минуту

правдо этого условия я не понял

Пример входных данных:
Every second 4 people are hearing happy birthday to him. It means 240 persons in minute and 144 000 persons in hour.
Пример выходных данных:
Every second four people are hearing happy birthday to him. It means 240 persons in minute and 144 000 persons in hour.

Добавлено через 6 минут
Цитата Сообщение от МаксимТ Посмотреть сообщение
пользователь ввел строку,

(вместо 15 строки):
затем в цикле идет перебот символов строки,
если символ - не цифра то выводим на экран, а если цифра то вызываем функцию myfunc()

C++ (Qt)
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
int main()
 
{
 
    string str;
    getline(cin, str);
 
    for (int i = 0; i < str.lenght; i++){
    
        if (str[i] == '0' && (str[i - 1], str[i + 1])) { cout << "zero"; continue; }
        if (str[i] == '1' && (str[i - 1], str[i + 1])) { cout << "one"; continue; }
        if (str[i] == '2' && (str[i - 1], str[i + 1])) { cout << "two"; continue; }
        if (str[i] == '3' && (str[i - 1], str[i + 1])) { cout << "three"; continue; }
        if (str[i] == '4' &&(str[i - 1], str[i + 1])) { cout << "four"; continue; }
        if (str[i] == '5' && (str[i - 1], str[i + 1])) { cout << "five"; continue; }
        if (str[i] == '6' && (str[i - 1], str[i + 1])) { cout << "six"; continue; }
        if (str[i] == '7' && (str[i - 1], str[i + 1])) { cout << "seven"; continue; }
        if (str[i] == '8' && (str[i - 1], str[i + 1])) { cout << "eight"; continue; }
        if (str[i] == '9' && (str[i - 1], str[i + 1])) { cout << "nine"; continue; }
 
    }
 
    else 
    {
 
        void myfunc();
 
    }
Что то в таком стиле?
МаксимТ
 Аватар для МаксимТ
47 / 47 / 4
Регистрация: 17.08.2012
Сообщений: 225
09.12.2013, 20:01     Связать программу #4
нет, чтото типо такого:
C++
1
2
3
4
5
for (int i = 0; i < str.lenght; i++)
  if (str[i]>='0' && str[i]<='9')//сдесь надо дописать проверку след символа еще, дабы избежать более 1 цифры
     myfunc(str[i]);
  else
     cout<<str[i];
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
09.12.2013, 20:04     Связать программу #5
Цитата Сообщение от Jurlique Посмотреть сообщение
(str[i - 1]
что будет когда i =0?
Цитата Сообщение от Jurlique Посмотреть сообщение
for (int i = 0; i < str.lenght; i++)
Yandex
Объявления
09.12.2013, 20:04     Связать программу
Ответ Создать тему
Опции темы

Текущее время: 02:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru