Я делаю домашнее задание на C ++, но не могу понять алгоритм.
Мне нужно создать программу, которая работает со строками.
Строки и операторы (+ и *) должны быть дифференцированным по пробелу ('')
, и умножение выполняется первым, а не сложение
+) используйте atoi, чтобы изменить строку на целое
, например:
ВХОД: ab c + b * 4 + xy * 2 + z
ВЫХОД: abcbbbbxyxyz
до сих пор это то, что я сделал ↓
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include<sstream>
using namespace std;
enum classify {NUMBER, STRING, OPERATION, SPACE};
int char_type(string c)
{
if (c >= "0" && c <= "9") return NUMBER;
else if (c == "*" || c == "+") return OPERATION;
else if (c == " ") return SPACE;
else return STRING;
}
int main(void)
{
string input;
getline(cin, input);
istringstream token(input);
string buffer;
while (getline(token, buffer, ' '))
{ after I classify them using enum, how can I
let the computer to know "multiplication first"? }
}