Перевести в строку в им. падеже: Есть.
Что еще:
Например:
...
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 массивов дописать, под остальные падежи??
Писать в принципе ничего не прошу, хотя бы подсказать идейно.
Спасибо!
Актуально..
Я думаю, что нет смысла делать перегрузку. Не стоит привязываться к разрядности чисел из соображений расширения программы (если вдруг вам нужно будет сделать тоже самое, только до миллиона).
Вам нужно написать функцию, определяющую корень введенного слова, после чего к корню подставить соответствующее окончание, для нужного падежа.
Например:
Вам передается слово "Десять":
Во всех формах слова присутствует неизменяемая часть "Десят". Важно выделить эту чать, окончание добавить в зависимости от падежа.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей