#include <iostream>
#include <vector>size_t split(std::string &src, std::vector<std::string> *tokens, std::string sep)
{size_t last= 0;size_t index = src.find(sep, last);size_t length = src.size();while(index != std::string::npos){tokens->push_back(src.substr(last, index-last));last = index + 1;index = src.find(sep, last);}if(length - last > 0){tokens->push_back(src.substr(last, length-last));}ret...
#include <iostream>
#include <vector>
#include <sstream>
usingnamespace std;vector<string> split(string s,char token){stringstream iss(s);string word;vector<string> vs;while(getline(iss,word,token)){vs.push_back(word);}return vs;
}int main()
{string s1 = "aaa,sss,ddd,fff";vector<string> s2 = split(s1, ‘,‘);cout << s1;for(int i=0;i<s2.size();i++){cout<<s2[i]<<endl;}system("pause");return0;
}结果:...
#include <vector>
#include <string>
#include <iostream>
using namespace std;vector<string> split(const string &s, const string &seperator){vector<string> result;typedef string::size_type string_size;string_size i = 0;while(i != s.size()){//找到字符串中首个不等于分隔符的字母;int flag = 0;while(i != s.size() && flag == 0){flag = 1;for(string_size x = 0; x < seperator.size(); ++x)if(s[i] == seperato...
void split(const std::string& inputStr, const std::string& seperateStr, std::vectorstd::string& ouputVec)
{
std::string::size_type startPos = 0;
std::string::size_type sepPos = inputStr.find(seperateStr, startPos);
while (sepPos != std::string::npos) {std::string singleStr = inputStr.substr(startPos, sepPos - startPos);if (singleStr.size() > 0) {ouputVec.push_back(singleStr);}startPos = sepPos + s...
一道字符串倒置的题目,不是全部倒置,而是每个单词倒置,单词之间顺序不变。 这道题目应该是很经典的,好多次看到,包含编程珠玑的案例,还有某博客写的百度一面面试题,典型的O(n)算法,每个word倒置,再整个string倒置。 这次要上战场了,却发现C C++的 字符串函数不熟练了,最近写的都是Java,一个Split函数爽到爆,于是决定要吧C C++的常用字符串函数过一遍, 并对各种方法实现,此处总结下Split。另外发...
函数第一次调用需设置两个参数。第一次分割的结果,返回串中第一个" " 之前的字符串,也就是上面的程序第一次输出abc。
第二次调用该函数strtok(NULL," "),第一个参数设置为NULL。结果返回分割依据后面的字串,即第二次输出d。
strtok是一个线程不安全的函数,因为它使用了静态分配的空间来存储被分割的字符串位置
线程安全的函数叫strtok_r,
运用strtok来判断ip或者mac的时候务必要先用其他的方法判断’.‘或’:的个数,因为用strt...
写个小工具函数#include <iostream>
#include <vector>
using namespace std;namespace strtool
{
string trim(const string& str)
{string::size_type pos = str.find_first_not_of( );if (pos == string::npos){return str;}string::size_type pos2 = str.find_last_not_of( );if (pos2 != string::npos){return str.substr(pos, pos2 - pos + 1);}return str.substr(pos);
}int split(const string& str, vector<string>& ret_,...