У меня есть строка, которую необходимо проверить на правильность выражения postfix.
Допустимая строка постфикса: 1 2+, но не 1 2+, поскольку каждому символу требуется пробел. Кроме того, поскольку это строка, вы можете вводить слова, но они должны возвращать -1 для этой функции.
Я пытался использовать векторный массив со строками и проверять действительные значения, но когда пользователь вводит буквы, это, очевидно, создает проблему.
string postfix = "1 2 +"; // valid
string postfix = "soemthing"; // error
string postfix = "1 2+" ; // error since there is no space.
if (!isdigit(postfix[0]))
return -1;
int t;
string line = "55 124 4 5";
std::vector <int> ints;
std::istringstream iss ( line, std::istringstream::in);
int main() {
while (iss >> t )
{
ints.push_back(t);
}
if (!digit(ints[0]) || !digit(ints[0]))
return -1;
}
~