Как преобразовать строку в число и наоборот в C ++? - PullRequest
1 голос
/ 13 июня 2010

УВАЖАЕМЫЕ Все

Я новичок в C ++, так что, возможно, кто-то может сказать, как правильно написать функцию, которая получает строку char (представляет число) и преобразует ее в целое число.

Например: ввод: шестьдесят пять, вывод: 65.

Может, стоит использовать cin.getline ()?

Ну, наоборот, немного проще ...

Спасибо за продвижение. Игаль

Ответы [ 2 ]

2 голосов
/ 13 июня 2010

Вот иллюстрация ключевой части решения:

const char* digits[] = {"zero", "one", "two", ...};
const char* tens[] = {"ten", "twenty", "thirty", ...};

// Loop to compare input text tokens against above
...

Идея состоит в том, чтобы упростить преобразование из текста в цифры, используя индекс массива для соответствующего текстового токена в качестве средства преобразования в цифру, корректируя любые начальные различия индексов массива.

Используйте либо функцию strcmp C, либо оператор сравнения строк == C ++, в зависимости от того, какие типы данных вы используете для входных текстовых токенов.

1 голос
/ 13 июня 2010

Вот как это сделать в Ruby (также обрабатывает дроби):

http://github.com/jduff/numerizer/blob/master/lib/numerizer.rb

Не должно быть слишком сложно перевести на C ++

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...