⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 split.cpp

📁 LiteSQL is a C++ library that integrates C++ objects tightly to relational database and thus provide
💻 CPP
字号:
/* LiteSQL - Split implementation *  * By Tero Laitinen  *  * See LICENSE for copyright information. */#include "compatibility.hpp"#include "litesql/split.hpp"#include <string>#include <string.h>#include <cstring>namespace litesql {    using namespace std;Split::Split(string s, string delim) {    char * buf = strdup((char*) s.c_str());    char * ptr = buf;    int len = delim.size();    vector<char*> pointers;    pointers.push_back(ptr);    while((ptr = strstr(ptr, delim.c_str()))) {        *ptr = '\0';        ptr += len;        pointers.push_back(ptr);    }    for (vector<char*>::iterator i = pointers.begin();         i != pointers.end();         ++i)        push_back(string(*i));    free(buf);}Split Split::slice(int start, int end) const {    vector<string> data;    if (start < 0)        start = start+size();    if (end < 0)        end = end+size();    if (start >= static_cast<int>(size()))        start = size()-1;    if (end >= static_cast<int>(size()))        end = size()-1;    if (start >= end)        return data;    for (int i = start; i < end; i++)        data.push_back(this->operator[](i));    return data;}string Split::join(string delim) const {    string res;    for (const_iterator i = begin(); i != end(); i++) {        if (i != begin())            res += delim;        res += *i;    }    return res;}Split & Split::extend(const Split & s) {    for (size_t i = 0; i < s.size(); i++)        push_back(s[i]);    return *this;}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -