C++ string自定义函数

华电北风吹
天津大学认知计算与应用重点实验室
日期:2015/9/21

一、字符,整形(浮点型)相互转化
使用stringstream实现string与int,double等类型相互转换

#include <string>
#include <iostream>
#include <sstream>
using namespace std;

int main(int argc, char* argv[])
{
    string str = "8754.56";
    double m;
    stringstream s;
    s << str;
    s >> m;
    cout << m << endl;
    s.str("");
    s << m;
    s >> str;
    cout << str << endl;
    return 0;
}

二、字符串split方法

#include <string>
#include <algorithm>
#include <vector>
using namespace std;

void split(string &s, string &delim, vector<string>* ret);

int main()
{
    string str = "14.04.10";
    string delim = ".";
    vector<string> vect;
    split(str, delim, &vect);
}

void split(string &s, string &delim, vector<string>* ret)
{
    size_t last = 0;
    size_t index = s.find_first_of(delim, last);
    while (index != string::npos)
    {
        ret->push_back(s.substr(last, index - last));
        last = index + 1;
        index = s.find_first_of(delim, last);
    }
    if (index - last>0)
    {
        ret->push_back(s.substr(last, index - last));
    }
}

三、字符串trim()函数

#include <iostream>
#include <string>
using namespace std;

string& trim(string &s,string &m);

int main()
{
    string s = " erkl ";
    string m = " ";
    cout << s << " size:" << s.size() << endl;
    cout << trim(s,m) << " size:" << trim(s,m).size() << endl;
    return 0;
}

string& trim(string &s,string &m)
{
    if (s.empty())
    {
        return s;
    }
    s.erase(0, s.find_first_not_of(m));
    s.erase(s.find_last_not_of(m) + 1);
    return s;
}

四、统计字符个数

#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
    string str = "498372597632754387";
    cout << count(str.begin(), str.end(), '4') << endl;
    return 0;
}

你可能感兴趣的:(C++ string自定义函数)