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

简介: 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

输出:

1 6 1 4 5 3
+ + / + *
相关文章
|
3天前
|
数据处理 C++
C++程序字符串流
C++程序字符串流
12 2
|
2天前
|
存储 编译器 程序员
C++中的宏定义和字符串字面值的区别
C++中的宏定义和字符串字面值的区别
|
3天前
|
C++
【C++基础】C++中的字符串
【C++基础】C++中的字符串
5 0
|
3天前
|
存储 C++
C++程序中的字符串与指针
C++程序中的字符串与指针
9 2
|
3天前
|
存储 C++ 索引
C++程序字符数组:深入理解与实践
C++程序字符数组:深入理解与实践
12 2
|
8天前
|
编解码 JavaScript 前端开发
【专栏】介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例
【4月更文挑战第29天】本文介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例。Base64编码将24位二进制数据转换为32位可打印字符,用“=”作填充。文中展示了各语言的编码解码代码,帮助开发者理解并应用于实际项目。
|
8天前
|
存储 编译器 C语言
C++字符串大小写之for语句
C++字符串大小写之for语句
20 0
|
8天前
|
C++
【代码片段】【C++】获取当前时间戳并生成固定格式字符串
【代码片段】【C++】获取当前时间戳并生成固定格式字符串
17 0
|
8天前
|
存储 编译器 Linux
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
|
8天前
|
安全 C++
石头剪子布(字符串解法 C++)
石头剪子布(字符串解法 C++)
20 0