#include <map>
using namespace std;
string slownie(unsigned value) {
map<unsigned, string> slowa = {
{ 0, "zero"}, { 1, "jeden"}, { 2, "dwa"}, { 3, "trzy"}, { 4, "cztery"}, { 5, "pięć" },
{ 6, "sześć" }, { 7, "siedem" }, { 8, "osiem" }, { 9, "dziewięć"}, { 10, "dziesięć" },
{ 11, "jedenaście" }, { 12, "dwanaście"}, { 13, "trzynaście" }, { 14, "czternaście" }, { 15, "piętnaście" },
{ 16, "szesnaście" }, { 17, "siedemnaście" } , { 18, "osiemnaście" }, { 19, "dziewiętnaście" },
{ 20, "dwadzieścia" }, { 30, "trzydzieści" }, { 40, "czterdzieści" }, { 50, "pięćdziesiąt" },
{ 60, "sześćdziesiąt" }, { 70, "siedemdziesiąt" }, { 80, "osiemdziesiąt" }, { 90, "dziewięćdziesiąt" },
{ 100, "sto" }
};
if(value > 100) {
return "";
}
if( (0 != (value % 10) ) && ( value > 20) ) {
return slownie((value / 10) * 10) + string(" ") + slownie(value % 10);
}
return slowa[value];
}
Można ew. unsorted_map. Masz i dalej baw się sam. Idea jest widoczna :-)