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

Замена цифр в тексте числительными - C++

Восстановить пароль Регистрация
 
Iceprera
 Аватар для Iceprera
0 / 0 / 0
Регистрация: 14.01.2012
Сообщений: 42
18.12.2012, 17:26     Замена цифр в тексте числительными #1
ребят , задача такая замена цифр в тексте числительными . допустим чтобы я ввел в окно 5234 и при нажатие кнопки выдал как результат - пять два три четыре.

я так понимаю , нужно два массива .
и как то все связать с ключем case.

помогите в реализации
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
18.12.2012, 17:41     Замена цифр в тексте числительными #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
#include <iostream>
#include <ctype.h>
using namespace std;
 
void replace(char  str)
{
    switch(str)
    {
        case '0': cout << "ноль ";      break;
        case '1': cout << "один ";      break;
        case '2': cout << "два ";       break;
        case '3': cout << "три ";       break;
        case '4': cout << "четыре ";    break;
        case '5': cout << "пять ";      break;
        case '6': cout << "шесть ";     break;
        case '7': cout << "семь ";      break;
        case '8': cout << "восемь ";    break;
        case '9': cout << "девять ";    break;
        default: break;
    }
    cout << endl;
}
 
int main()
{
    setlocale(0, "rus");
    char str[255];
    gets(str);
 
    for (int i = 0; i < strlen(str); ++i)
        if (!isalpha(str[i]) && !ispunct(str[i]))
            replace(str[i]);
 
    system("pause");
    return 0;
}
Iceprera
 Аватар для Iceprera
0 / 0 / 0
Регистрация: 14.01.2012
Сообщений: 42
18.12.2012, 17:43  [ТС]     Замена цифр в тексте числительными #3
Afflicted, спасибо за помощь!
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
18.12.2012, 17:48     Замена цифр в тексте числительными #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот еще как вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    const char *arr[] = {"ноль", "один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять"};
    char str[100];
 
    cout << "Введите строку: ";
    cin.getline(str, 100);
 
    for (int i=0; i<strlen(str); i++)
        if (str[i]>='0' && str[i]<='9')
            cout << arr[str[i]-'0'] << " ";
        
 
    cout << endl;
    system("pause");
    return 0;               
}
Iceprera
 Аватар для Iceprera
0 / 0 / 0
Регистрация: 14.01.2012
Сообщений: 42
18.12.2012, 18:04  [ТС]     Замена цифр в тексте числительными #5
v.a.l.i.d, хороший вариант =) спасибо
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
18.12.2012, 18:07     Замена цифр в тексте числительными #6
Посмотрите вот по этой ссылке Вывести число прописью дам даются интересные решения данной задачи
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2012, 18:08     Замена цифр в тексте числительными
Еще ссылки по теме:

C++ Подсчет количества цифр в тексте
C++ Замена символов в тексте
C++ Замена определенных слов в тексте

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11817 / 6796 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
18.12.2012, 18:08     Замена цифр в тексте числительными #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Изменение исходной строки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <memory.h>
int main(){
    setlocale(LC_ALL,"rus");
    char numstr[10][10]={"ноль","один","два","три","четыре","пять","шесть","семь","восемь","девять"};
    char str[1024]="9  abc 12  df dfgf d  D 3"; 
    for(char *p1=str;*p1;++p1){
        if(*p1>47 && *p1<58){
            char *p2=&numstr[*p1-'0'][0];
            int slen=strlen(p2);
            memmove(p1+slen+1,p1+1,strlen(p1));
            memcpy(p1,p2,slen);
            p1+=slen;*p1=(*p1)?' ':0;
        }
    }
    std::cout<<str;
    std::cin.get();
    return 0;
}
Yandex
Объявления
18.12.2012, 18:08     Замена цифр в тексте числительными
Ответ Создать тему
Опции темы

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