文章目录
1. string关键字
1.1 API
常量 | 定义 |
---|---|
std::string::size_type | |
std::string::npos |
API | 定义 | 含义 |
---|---|---|
c_str() | 函数返回的是一个指向正规C字符串的指针,内容与本string串相同 | |
length() | ||
substr() | substr(size_type pos = 0, size_type count = npos) pos:所需的子字符串的起始位置 count: 复制的字符数目 返回值:一个定的位置开始的子字符串 | 复制子字符串 |
find() | std::string str = "I'm from China."; std::string sep= "China"; std::string::size_type pos = str.find(sep); |
1.2 取字符
取首尾字符的方法
2. 数据转换
2.1 string与QString、int、double、long之间的转换
- string与QString互为转换
//string与QString互为转换
QString qstr = "12";
std::string s = qstr.toStdString(); //QString转string
QString qs = QString::fromStdString(s); //string转QString
- string与int、double、long互为转换
- string转化int、double、long
//string转化int、double、long
int data_int = std::atoi(input.c_str()); //string 转化为 int
double data_double = std::atof(input.c_str()); //string 转化为 double
long data_long = std::atol(input.c_str()); //string 转化为 long
- int、double、long转化string
//int、double、long转化string
int input_int = 10;
std::string str = std::to_string(input_int);
2.2 string与double转换精度处理
3. 字符串工具接口
3.1 字符串分割工具
/**
* @brief 字符串分割函数
* @param str 要分割的字符串
* @param sep Separator,分隔符
*
* @return 分割后的字符串列表
*/
std::vector<std::string> StrTool::SplitString(const std::string& str,
const std::string& sep) {
std::vector<std::string> res;
//pos1起时位置,pos2下一个sep的起时位置
std::string::size_type pos1 = 0, pos2 = str.find(sep);
while(std::string::npos != pos2) {
res.push_back(str.substr(pos1, pos2 - pos1));
pos1 = pos2 + sep.size();
pos2 = str.find(sep, pos1);
}
if(pos1 != str.length()) {
res.push_back(str.substr(pos1));
}
return res;
}