STL string未提供的方法
2013-11-28 10:09
363 查看
在STL 的string中,有一些本该提供的实用方法却没有提供,而是需要程序员自己去实现
本帖总结了一些网友的经验方法
本帖总结了一些网友的经验方法
#include <iostream> #include <algorithm> #include <functional> using namespace std; class Teststring { public: void Toupper(string& str); //转大写 void Tolower(string& str); //转小写 void TrimRight(string& str); //去除后面的空格 void TrimLeft(string& str); //去除前面的空格 void DeleteChar(string& str,char ch); //去掉字符串里某个字符,注意,是都去掉 void TestReplace(); //替换字符串里的某一段字符 例如 abcdef 将ab替换成cd bool StartWith(const string& str,const string& strStart); //字符串以某段开头 bool EndWith(const string& str,const string& strEnd); //字符串以某段结尾 void TestReverse(); //翻转字符串 }; void Teststring::Toupper(string& str) { transform(str.begin(),str.end(),str.begin(),::toupper); } void Teststring::Tolower(string& str) { transform(str.begin(),str.end(),str.begin(),::tolower); } void Teststring::TrimLeft(string& str) { str.erase(0,str.find_first_not_of(' ')); } void Teststring::TrimRight(string& str) { str.erase(str.find_last_not_of(' ')+1); } void Teststring::DeleteChar(string& str,char ch) { str.erase(remove_if(str.begin(),str.end(),bind2nd(equal_to<char>(), ch)),str.end()); } void Teststring::TestReplace() { string str = "abcdef"; string strSub = "ab"; str.replace(str.find(strSub),strSub.size(),"cd"); cout<<str.c_str()<<endl; } bool Teststring::StartWith(const string& str,const string& strStart) { if(str.empty() || strStart.empty()) { return false; } return str.compare(0,strStart.size(),strStart)==0?true:false; } bool Teststring::EndWith(const string& str,const string& strEnd) { if(str.empty() || strEnd.empty()) { return false; } return str.compare(str.size()-strEnd.size(),strEnd.size(),strEnd)==0?true:false; } //翻转汉字的过程中,会出现乱码,因为该方法是按char进行翻转的 void Teststring::TestReverse() { string str1 = "张东升"; std::reverse(str1.begin(),str1.end()); string str2 = ""; str2.assign(str1.rbegin(),str1.rend()); }
相关文章推荐
- windows Server 2008 64位 Tomcat做为服务_Web服务器
- Dll学习二_Dll 窗体中动态创建数据并使用Demo
- Windows下命令行下启动ORACLE服务
- NSLog输出的格式
- C++作业:将左右孩子互换 / 复制一棵二叉树
- OCI编程
- Linux基础知识
- 如何利用好PS语法管理AD域
- functools.partial
- Java正则表达式教程
- gcd其全称(Grand Central Dispatch) 那到底什么叫gcd,官方的解释如下
- 关于按班号提取工作表的再次改进
- 单例模式
- 《黑客防线》《黑客X档案》《非安全-黑客手册》电子刊下载(最全版)
- 多媒体处理AVAudioPlayer
- Linux线程属性总结
- 利用python包(xlrd和xlwt)处理excel
- C++作业:n只猴子围成一圈,顺时针方向从1到n编号
- Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 错误
- mysql数据类型总结