C++分离字符串中的数字和字符 转

#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】免费获取数百本计算机经典书籍

    C++分离字符串中的数字和字符 转

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/278400

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月15日 上午3:22
下一篇 2023年2月15日 上午3:25

相关推荐