C++标准string本身没有字符串转大写和小写的方法,不像C#中的string.ToLower、ToUpper那样方便。那C++中如何使用字符变大写或小写呢?除了自己for循环遍历字符然后判断决定是否变大小写外,C++算法中已经提供了transform函数,方便地用于容器的变换操作,这里适用于string,因为string也是容器的一种。
注意:使用时包含头文件 #include <algorithm>
//小写 string& ToLower(string &str) { transform(str.begin(), str.end(), str.begin(), tolower); return str; } //大写 string& ToUpper(string &str) { transform(str.begin(), str.end(), str.begin(), toupper); return str; }
因为是引用,函数执行完transform之后,其实字符串已经转换了,那为什么还要返回呢?这是为了使用链式表达式,比如在判断文件扩展名是否是.exe的时候,可以这样使用
//判断文件扩展是否是.exe if (ToLower(strFileExt) == (".exe")) { //... }
而不是先调用函数之后,再判断。当然我们最好把它封装成一个一个类,比如CStringEx类,方便我们在以后的项目中使用,先把这些总结完之后再作这样一篇文章吧。
本站部分资源收集于网络,纯个人收藏,无商业用途,如有侵权请及时告知!