位置: IT常识 - 正文
推荐整理分享C++ 使用STL string 实现的split,trim,replace修订(C++ 使用dll路径不在当前路径时如何调用),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:C++ 使用 ffmpeg 生成图片 并输出成视频,C++ 使用dll路径不在当前路径时如何调用,C++ 使用输出运算符输出一个长方形,C++ 使用OLEDB连接access数据库,C++ 使用 ffmpeg 生成图片 并输出成视频,C++ 使用dll路径不在当前路径时如何调用,C++ 使用 ffmpeg 生成图片 并输出成视频,C++ 使用 ffmpeg 生成图片 并输出成视频,内容如对您有帮助,希望把文章链接给更多的朋友!
编辑器加载中...
使用python的时候默认str 对字符串操作支持非常丰富,相信每个C++程序员都自己写过string的strim、split、replace,
写个小工具函数,留着用,以前偷懒,写了好几次,这次总结一下,贴出来。
#include <iostream>#include <vector>using namespace std;namespace strtool{string trim(const string& str){ string::size_type pos = str.find_first_not_of(' '); if (pos == string::npos) { return str;} string::size_type pos2 = str.find_last_not_of(' '); if (pos2 != string::npos) { return str.substr(pos, pos2 - pos + 1); } return str.substr(pos);}int 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;}string replace(const string& str, const string& src, const string& dest){ string ret; string::size_type pos_begin = 0; string::size_type pos = str.find(src); while (pos != string::npos) { cout <<"replacexxx:" << pos_begin <<" " << pos <<"\n"; ret.append(str.data() + pos_begin, pos - pos_begin); ret += dest; pos_begin = pos + 1; pos = str.find(src, pos_begin); } if (pos_begin < str.length()) { ret.append(str.begin() + pos_begin, str.end()); } return ret;}}int main(int argc, char* argv[]){ cout << strtool::trim(" nihao ") <<"\n"; vector<string> vt; strtool::split(",o h,,,nice,,,,,,,", vt); for (size_t i = 0; i < vt.size(); ++ i) { cout <<"out:" << vt[i] <<"\n";} string ret = strtool::replace("xxAxxxAxxAxx", "A", "B"); cout <<"replace:" << ret <<"\n"; return 0;}下一篇:微信小程序实现tab组件切换动画(微信小程序实现发红包)
友情链接: 武汉网站建设