Я разрабатываю программу, которая делает базовые вычисления с использованием слов вместо чисел. Например. пять + два будут выдавать семь.C++ Word-int to int
Программа становится более сложным, принимая вход, такие как two_hundred_one + five_thousand_six (201 + 5006)
Через оператора перегрузки методов, я разделить каждое число и назначить его на его собственный индекс массива.
два будут [0], сотни [1], а один - [2]. Затем массив перерабатывается для 5006.
Моя проблема заключается в том, чтобы выполнить фактический расчет, мне нужно преобразовать слова, хранящиеся в массиве, в фактические целые числа.
У меня есть константные строки массивы, такие как это, как библиотека слов:
const string units[] = { "", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
const string teens[] = { "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
const string tens[] = { "", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };
Если мой «маркер» массив хранится в нем двести одна индекса 0, 1 и 2, я m не уверен, что лучший способ конвертировать их в ints будет включать в себя.
Если все, что вы хотите, должно превратить индивидуальное числовое слово в целое число, то это достаточно просто. Просто сканируйте эти массивы в цикле for, пока не получите совпадение. Или вы можете использовать карту, как рекомендует Джесси. Разбор цельной фразы типа «тридцать две тысячи триста сорок два» более сложный. С какой проблемой вы хотите помочь? –
Я пробовал многословные утверждения if, но то, что я нахожу самым сложным, - это номера подростков – Edge
@AdrianRatnapala. Мне кажется, мне нужна помощь с несколькими номерами слов. – Edge