Я супер новичок в C ++.
Я должен сделать парсер. Возьмите входные данные типа «34 + 5- (9 * 8)» и вставьте их в двоичное дерево. Моя идея состоит в том, чтобы сравнить каждый символ в строке и определить, является ли символ числом или символом (+, -, *, / и т. Д.), И вставить его в очередь, чтобы использовать постфиксную нотацию, а затем вставить его в двоичное дерево
Я хочу попросить пользователя ввести строку, разбить строку на символы и затем сравнить
что-то вроде
#include <iostream>
#include <string>
using namespace std;
string cadena;
string numero;
int i;
int main(){
cout<< "Type String";
cin>> cadena;
for (i=0; i<cadena.length(); i++){
switch(cadena[i]{
case "0":
case "1":
case "2":
...
case "9":
numero+=cadena[i];
}
cout << numero<<endl;
numero="";
}
return 0;
}
Но компилятор жалуется, что я не могу сравнить текущий символ (cadena[i]
) с моей строкой ("0").
Может кто-нибудь дать мне представление о том, что делать?
Я уже пытался использовать char вместо std:string
, читать другие вопросы и т. Д.