判断数据为何种类型
// 使用typeid()可判断数据类型
int num = 100;
if(typeid(num) == typeid(int))
cout << "数据类型为int" << endl;
if(typeid(num) == typeid(string))
cout << "数据类型为string" << endl;
字符串分割
vector<string> split(string str,string pattern)
{
vector<string> vec_split;
if ("" == str)
return vec_split;
string strs = str + pattern;
int pos = strs.find(pattern);
while (pos != string::npos)
{
string x = strs.substr(0,pos);
vec_split.push_back(x);
strs = strs.substr(pos + pattern.size(), strs.size());
pos = strs.find(pattern);
}
return vec_split;
}
int和string互转
#include <sstream>
// string转int
string str = "100";
int num;
stringstream ss;
ss << str;
ss >> num;
// int转string
int num = 100;
string str;
str = to_string(num);
去除指定的字符
// 去除所有的指定字符
str.erase(std::remove(str.begin(), str.end(), 'a'), str.end());
截取字符串中指定的一段
str = str.substr(0, str.length() - 1);
去除字符串后几位(假设去除最后一位)
// method 1
str = str.substr(0, str.length() - 1);
// method 2
str.erase(str.end() - 1);
// method 3
str.pop_back();
去除文件后缀名
string test_text = "test.jpg";
string text = test_text.substr(0, test_text.rfind("."));
// text: "test"
获取文件后缀名
string test_text = "test.jpg";
string text = test_text.substr(test_text.find(".") + 1);
// text: "jpg"