Как прочитать строку отдельно (+, -) от чисел в C - PullRequest
0 голосов
/ 01 мая 2011

Я пытаюсь написать программу, которая будет читать строку вроде: * 3 2

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

У меня есть формулы для всех операций, просто не знаю, как отделить линию и сделать вызовы.

1 Ответ

0 голосов
/ 01 мая 2011

Польская (префиксная) нотация - это когда оператор пишется перед его операндами, как у вас здесь. Если каждая из ваших строк соответствует «польскому предложению», и если вы можете удобно хранить целую строку в памяти (очень вероятно, я бы предположил), то самый простой способ может быть просто прочитать всю строку в буфер (т. е. с fgets()), затем используйте strtok() для построения массива указателей на каждый токен и, наконец, обойдите этот массив от конца до его начала (в основном читая предложение справа налево), обрабатывая каждый токен аналогично псевдокоду, указанному в вышеупомянутой записи в Википедии. ( слева направо обработка реверс польская запись предложение точно такая же и, возможно, немного легче понять, просто потому, что чтобы сделать это так легко, нужно пройти предложение назад.)

...