Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите! Преоброзование числа в пропись в С++ 
:(
    Опции темы
barsuk
  Дата 3.11.2004, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 11.12.2003

Репутация: нет
Всего: нет



помогите пожалуйста! Есть число скажем 10 нужно преобразовать в пропись "десять"!
PM MAIL   Вверх
chipset
Дата 3.11.2004, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Модератор: Название темы должно отражать ее суть!
Ну сделай массив строковой для единиц "один","два","три"...
Для десятков "десять", "двадцать", "тридцать"...
Для сотен "сто","двести","триста"..
Загони в ассоциативный массив (std::map).
И нарисуй алгоритм который будет смешивать эти названия в одну строку :)
Типа
Код

//...
if(number>100) temp = static_cast<int>(number/100);
str_str[2] = digit_map[temp];//Извлечение из map'a и передача второму порядку string'a..

СУВ.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
barsuk
Дата 3.11.2004, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 11.12.2003

Репутация: нет
Всего: нет



А еще предложения есть???
PM MAIL   Вверх
Mad
Дата 4.11.2004, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

Репутация: 7
Всего: 19



barsuk
Код

const char *iw1[] = { /*... еденицы ...*/};
const char *iw10[] = { /* ... десятки ...*/};
const char *iw100[] = { /* ... сотни ...*/};

char *Num2Word(int num)
{
   char tmp[256];
   tmp[0] = 0;
   int tnum = num;

   if (tnum > 99)
   {
       int t = (int)(tnum/100);
       strcat(tmp,  iw100[t]);
       tnum -= t*100;
   }

   if (tnum > 9)
   {
       int t = (int)(tnum/10);
       strcat(tmp,  iw10[t]);
       tnum -= t*10;
   }

   if (tnum)
       strcat(tmp,  iw1[tnum]);

   return strdup(tmp);
}

Добавлено @ 14:58
chipset
Для такой простой задачки std::map это уже черезчур smile


--------------------
user posted image
PM MAIL   Вверх
gray_k
Дата 4.11.2004, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1015
Регистрация: 9.1.2003
Где: Москва

Репутация: нет
Всего: 22



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


--------------------
С уважением.
Gray.
PM MAIL   Вверх
cardinal
Дата 5.11.2004, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



Вот пример на VB:
http://forum.vingrad.ru/index.php?showtopic=32374
Все просто как никогда smile Если что - спрашивай!


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0634 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.