#include <iostream> #include <string> #include <vector> using namespace std; void part(string _str, vector<int> &_num, vector<char> &_op) { int sum = 0; unsigned int i = 0; while (i < _str.length()) { if ('0' <= _str.at(i) && _str.at(i) <= '9') //还原连续的数字 sum = sum * 10 + (_str.at(i) - '0'); else { _num.push_back(sum); _op.push_back(_str.at(i)); sum = 0; } i++; } //判断最后一个字符是否是数字 if (0 != sum) _num.push_back(sum); } int main() { vector<int> num(0); vector<char> op(0); string str; cin >> str; part(str, num, op); //输出测试 for (unsigned int i = 0; i < num.size(); i++) cout << num.at(i) << " "; cout << endl; for (unsigned int i = 0; i < op.size(); i++) cout << op.at(i) << " "; return 0; }
输入:
1+6+1/4+5*3
输出:
1 6 1 4 5 3
+ + / + *
原文链接: https://www.cnblogs.com/yuguangyuan/p/9386486.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/278400
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!