Вывод числительного в падеже

173
14 апреля 2017, 23:31
Нужно ввести число, указать падеж, вывести число в нужном падеже.(до одной тысячи)

Перевести в строку в им. падеже: Есть.
Что еще:
Например:

...
sprintf(buf, "%s%s", Morph(ten[n / 10],T)), Morph(one[n % 10],T));
...

Что происходит:

берется из массива строка, передается в функцию Morph(const char *str, Case T)
Case - перечисление, которое указывает падеж.
Какой третий параметр добавить, чтобы перегрузить функцию??
Т.е чтобы оставить то же название, но добавить какой-то третий параметр, в зависимости от которого, вызывалась бы одна из 5 функций.(под десятки, сотни, и тд)
Можно конечно просто разные имена поставить. Ну или не перегружать а внутри if[ы] пихать, и так запутаюсь..

Ну и самый главный вопрос, каким образом мне теперь делать перевод?? Понимаю что нужно использовать strcat, ну и на этом всё :(

Или проще будет еще 20 массивов дописать, под остальные падежи??

Писать в принципе ничего не прошу, хотя бы подсказать идейно.

Спасибо!

Актуально..

Answer 1

Я думаю, что нет смысла делать перегрузку. Не стоит привязываться к разрядности чисел из соображений расширения программы (если вдруг вам нужно будет сделать тоже самое, только до миллиона).
Вам нужно написать функцию, определяющую корень введенного слова, после чего к корню подставить соответствующее окончание, для нужного падежа.

Например:
Вам передается слово "Десять":

  • И: Десять
  • Р: Десяти
  • Д: Десяти
  • В: Десять
  • Т: Десятью
  • П: Десяти

Во всех формах слова присутствует неизменяемая часть "Десят". Важно выделить эту чать, окончание добавить в зависимости от падежа.

READ ALSO
Почему find не находит пробелы в строке?

Почему find не находит пробелы в строке?

Пытаюсь сосчитать количество пробелов в строке, но через find выводит количество всех символов, а не пробеловПочему и какая есть альтернатива?

220
Rest Api Ajax Get запрос

Rest Api Ajax Get запрос

Не могу отправить правильный запрос на сервер, чтобы получить с него ответь в виде json строки

271
Google apps script. Как разделить информацию в ячейке на две с помощью split() в функции OnEdit?

Google apps script. Как разделить информацию в ячейке на две с помощью split() в функции OnEdit?

Добрый деньу меня в таблице есть 2 колонки: одна для имени, вторая для фамилии

251