Loading... 英文字母大小写之间的转换,可以用小写字母减32,大写字母加32的方式实现。 如果不知道被转的字母是小写还是大写,就不方便进行操作。比如给一个不确定大小写的字母,要转换为小写,到底是大写+32呢,还是本来就是小写不变,不好确定! 所以可以使用tolower/toupper函数! ### 函数介绍 <span style='color:#7FFF00'>**tolower**</span> to lower,转换为小写字母 <span style='color:#7FFF00'>**toupper**</span> to upper,转换为大写字母 通常要导入库:**ctype.h** (C++中是**cctype** ),在下面例子中,没有导入该库,但是也可以运行。 ### 在C++中使用 将字符串 “abcDEF” 分别转换为大小写。 ```cpp #include <iostream> using namespace std; int main(int argc, char** argv) { string str="abcDEF"; for(int i=0;i<str.length();i++){ str[i]=tolower(str[i]); } cout<<str<<endl; //abcdef for(int i=0;i<str.length();i++){ str[i]=toupper(str[i]); } cout<<str<<endl; //ABCDEF return 0; } ``` 以上只能利用两个函数一个一个字符转换,而transform函数可以一次性将字符串转换。 transform函数有两个重载版本: <span style='color:#7FFF00'>**transform(first,last,result,op);**</span> //first是容器的首迭代器,last为容器的末迭代器,result为存放结果的容器,op为要进行操作的一元函数对象或sturct、class。 <span style='color:#7FFF00'>**transform(first1,last1,first2,result,binary_op);**</span> //first1是第一个容器的首迭代器,last1为第一个容器的末迭代器,first2为第二个容器的首迭代器,result为存放结果的容器,binary_op为要进行操作的二元函数对象或sturct、class。 **transform函数配合tolower/toupper的用法实例:** ```cpp #include <bits/stdc++.h> using namespace std; int main(int argc, char** argv) { string s="HELLO"; transform(s.begin(),s.end(),s.begin(),::tolower); cout<<s<<endl;//输出hello string s2="hello"; transform(s2.begin(),s2.end(),s2.begin(),::toupper); cout<<s2;//输出HELLO return 0; } ``` 最后修改:2021 年 09 月 08 日 © 禁止转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏