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) << "";
return0;
}
输⼊:
1+6+1/4+5*3
输出:
1 6 1 4 5 3
+ + / + *
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论