Короче говоря: №
Как с этим справиться, зависит от того, как была создана строка.
Это какой-то пользователь, предоставляющий простой ввод в stdin, и вы ловите его с помощью std::cin
?
Если это действительно простое выражение (без скобок и т. Д.), Вы можете читать из stdin int, char, int, char, int и т. Д. И просто анализировать char как оператор.
Я столкнулся с алгоритмом Shunting-Yard , когда у меня возникла похожая проблема, и, казалось, это было именно то, что я хотел.
Вы могли бы также реализовать некоторую грамматику. Это действительно полезно, когда это работает, но это много работы и излишних. Смотрите разбор математического выражения в c ++ . У вас будут гораздо лучшие комментарии, чем у меня, с примерами кода.