对于C++中标准的stl的string类使用频率非常高,通过图形化的方式,整理了一些string类的常用方法。如下图所示:
- 下列代码依赖的头文件: <string> 、<algorithm>
- 字符串大小写转换
-
//字符串是实现全部转换为小写 std::string string_lower(const std::string input_str) { std::string output_str(input_str); std::transform(input_str.begin(), input_str.end(), output_str.begin(), ::tolower); return output_str; }
-
//字符串实现全部转换为大写
//字符串实现全部转换为大写 std::string string_upper(const std::string input_str) { std::string output_str(input_str); std::transform(input_str.begin(), input_str.end(), output_str.begin(),::toupper); return output_str; }
-
-
去除字符串的首尾空格
//去除字符串前后的空格 std::string trim(const std::string &str) { std::string::size_type npos1 = str.find_first_not_of(" "); if (npos1 == std::string::npos) return ""; std::string::size_type npos2 = str.find_last_not_of(" "); if (npos2 != std::string::npos){ return str.substr(npos1,npos2-npos1+1); } return str.substr(npos1); }
-
std::string字符串逆序的几种方法
//字符串逆序 //方法 1 使用反向迭代器之间来初始化构造函数 std::string strreverse = "123456789"; std::string strresult1(strreverse.rbegin(), strreverse.rend()); //方法 2 使用反向迭代器assin赋值 std::string strresult2 = strreverse.assign(strreverse.rbegin(), strreverse.rend()); //方法 3 使用reverse算法逆序 strreverse = "123456789"; std::reverse(strreverse.rbegin(), strreverse.rend()); //方法 4 replace函数替换两个迭代器之间的数据 strreverse = "123456789"; std::string strresult3 = strreverse.replace(strreverse.begin(), strreverse.end(), strreverse.rbegin(), strreverse.rend());
-
实现字符串分割:
//实现字符串的分割 std::vector<std::string> split_str(const std::string& str, const std::string& delim) { std::vector<std::string> ret; std::string strtemp(str); std::string::size_type pos = 0; do{ pos = strtemp.find(delim); if (pos == string::npos){ ret.push_back(strtemp); break; } //过滤相同的分割符 if (0 != pos){ std::string seg_str = strtemp.substr(0, pos); //每次从第0位开始 截取pos个字符 ret.push_back(seg_str); } strtemp = strtemp.substr(pos + delim.size()); //截取到结尾 } while (strtemp.size()>0); return ret; }
-
std::string字符串的迭代器的使用
#pragma region iterator //字符串的正向迭代器的操作 std::string::iterator iter = strLower.begin(); while (iter != strLower.end()){ char ch = *iter; putchar(*iter); iter++; } putchar('\n'); //反向迭代器 std::string::reverse_iterator riter = strLower.rbegin(); while (riter != strLower.rend()) { char ch = *riter; putchar(ch); riter++; } putchar('\n'); //正反向的const的迭代器 std::string::const_reverse_iterator criter = strLower.rbegin(); while (criter != strLower.rend()){ char ch = *criter; putchar(ch); criter++; } putchar('\n'); #pragma endregion
-
std::string字符串的其他应用