C++之字符串常用操作类集合

来源:互联网 发布:12年总决赛詹姆斯数据 编辑:程序博客网 时间:2024/06/10 07:37

## Linux C++中用于字符串操作的工具类

## cstringutils.h

#ifndef CSTRINGUTILS_H#define CSTRINGUTILS_H#include <vector>#include <string>#include <iostream>#include <map>#include <set>#include "typedef.h"using namespace std;class CStringUtils{public:    static INT32 split(const string & str,vector<string>& ret_,string sep);    static INT32 getXmlNodeValue(const string src ,const string key ,string & value);    static string toString(int n);    static INT32 StringToINT32(string str);};#endif // CSTRINGUTILS_H

## cstringutils.cpp

/*************************************************************************************************** * @HISTORY * * * * * * * ************************************************************************************************/#include "cstringutils.h"#include <stdlib.h>#include <strstream>/************************************************************************************************** *  split string to stringList. *************************************************************************************************/INT32 CStringUtils::split(const string &str, vector<string> &ret_, string sep){    if (str.empty())        return 0;    string tmp;    string::size_type pos_begin = str.find_first_not_of(sep);    string::size_type comma_pos = 0;    while (pos_begin != string::npos)    {        comma_pos = str.find(sep, pos_begin);        if (comma_pos != string::npos)        {            tmp = str.substr(pos_begin, comma_pos - pos_begin);            pos_begin = comma_pos + sep.length();        }        else        {            tmp = str.substr(pos_begin);            pos_begin = comma_pos;        }        if (!tmp.empty())        {            ret_.push_back(tmp);            tmp.clear();        }    }    return 0;}/************************************************************************************************** *  get Xml node`s value from string. *************************************************************************************************/INT32 CStringUtils::getXmlNodeValue(const string src ,const string key ,string & value){        string sNode = "<" + key + ">";        string eNode = "</" + key + ">";        int begin = src.find(sNode ,0);        if (string::npos == begin){                return -1;        }        int end = src.find(eNode ,begin);        if (string::npos == end){                return -1;        }        value = src.substr(begin + sNode.length() , end - begin - sNode.length());        return 1;}/************************************************************************************************** *  Convert INT to String. *************************************************************************************************/string CStringUtils::toString(int n){    strstream m;    m<<n;    string s;    m>>s;    return s;}/************************************************************************************************** *  Convert String to INT32 *************************************************************************************************/INT32 CStringUtils::StringToINT32(string str){    strstream m;    m<<str;    INT32 n;    m>>n;    return n;}


0 0
原创粉丝点击