c++实现字符串分割

来源:互联网 发布:数控车床编程基础知识 编辑:程序博客网 时间:2024/05/17 04:42

类似于python,shell,perl等语言都提供了方便的split()接口,用以分割字符串。c++/c需要自己写,这样耗时耗力还没效率,没保障的方法,当然是需要避免的。又是强大的boost库提供了方便。

.h文件

#ifndef DIRFILEOPT_HHHH#define DIRFILEOPT_HHHH#include <iostream>#include <vector>#include <string>using std::vector;using std::string;class CStrOpt{private:char* m_pStr;char m_pattern[10];public:CStrOpt(char*);vector<string>& mSplit(vector<string>& vecSplit);char* setPattern(char* pPattern);~CStrOpt();};#endif

.cpp文件

#define _SCL_SECURE_NO_WARNINGS#include "FileOpt.h"#include <iterator>#include <algorithm>#include <boost/filesystem.hpp>#include <boost/algorithm/string/classification.hpp>#include <boost/algorithm/string.hpp>using namespace std;using namespace boost::filesystem;CStrOpt::CStrOpt(char* pStr):m_pStr(pStr){}char* CStrOpt::setPattern(char* pPattern){                                    //设置分割符if(NULL == pPattern)return NULL;memset(m_pattern,0,sizeof(m_pattern) / sizeof(char));memcpy(m_pattern,pPattern,strlen(pPattern));return m_pattern;}CStrOpt::~CStrOpt(){m_pStr = NULL;}vector<string>& CStrOpt::mSplit(vector<string>& vecSplit){boost::split(vecSplit,m_pStr,boost::is_any_of(m_pattern),boost::token_compress_on); //核心函数 分割字符串m_pStr到vecSplit里面#ifdef DEBUGcopy(vecSplit.begin(),vecSplit.end(),ostream_iterator<string>(cout,"\n"));#endifreturn vecSplit;}


原创粉丝点击