• C++ 实现 split 操作


    理由:由于 C++ 标准库里面没有字符分割函数 split ,这可太不方便了,我们利用 STL 来实现自己的 split 函数:

    原型:vector<string> split(const string& s, const string& seperator);

     1 // codeThinking.cpp : 定义控制台应用程序的入口点。
     2 //
     3 
     4 #include "stdafx.h"
     5 #include <windows.h>
     6 #include <iostream>
     7 #include <vector>
     8 #include <stack>
     9 #include <cstring>
    10 #include<unordered_map>
    11 
    12 using namespace std;
    13 
    14 vector<string> split(const string& s, const string& seperator) {
    15     vector<string> result;
    16     unsigned int posBegin = 0;
    17     unsigned int posSeperator = s.find(seperator);
    18 
    19     while (posSeperator != s.npos) {
    20         result.push_back(s.substr(posBegin, posSeperator - posBegin));// 
    21         posBegin = posSeperator + seperator.size(); // 分隔符的下一个元素
    22         posSeperator = s.find(seperator, posBegin);
    23     }
    24     if (posBegin != s.length()) // 指向最后一个元素,加进来
    25         result.push_back(s.substr(posBegin));
    26 
    27     return result;
    28 }
    29 
    30 void splitTest(const string& str,string& symbol) {
    31     vector<string> result;
    32     result = split(str, symbol);
    33     for (int i = 0; i < result.size(); ++i) {
    34         cout <<atoi(result[i].c_str())<< endl;  // 把数字字符串转换为 数字
    35     }
    36 }
    37 
    38 int _tmain(int argc, _TCHAR* argv[])
    39 {
    40     string widths = "5 5 5 5 5 5 10 10 10 10 10 10 10 10 10 10 10 10 5 5 5 5 5 5 5 5";
    41     string symbol = " ";
    42 
    43     splitTest(widths,symbol);
    44 
    45 
    46     system("pause");
    47     return 0;
    48 }
    所有博文均为原著,如若转载,请注明出处!
  • 相关阅读:
    枚举--分巧克力--蓝桥杯--二分法
    枚举笔记之哈希表 四个平方和
    枚举 蓝桥杯 四个平方数和2--暴力解法 超时
    枚举例题之平方十位数思路无代码
    LeetCode----盛最多水的容器「贪心」
    2020校招笔试
    2020校招美团点评笔试
    2020校招搜狗笔试
    2020网易校招笔试
    2020校招途家名宿开发笔试
  • 原文地址:https://www.cnblogs.com/zpcoding/p/10645726.html
Copyright © 2020-2023  润新知