C++提供了transform函数可以用来实现将string中的字母全部转换为大写或者是小写
#include <string>
#include<iostream>
#include <algorithm>
using namespace std;
int main()
{
string str = "abcdefgHIJKLMN";
//转小写
transform(str.begin(),str.end(),str.begin(),::tolower);
cout<<str<<endl;
//转大写
transform(str.begin(),str.end(),str.begin(),::toupper);
cout<<str<<endl;
return 0;
}
//运行结果
abcdefghijklmn
ABCDEFGHIJKLMN
注意点:
1、transform函数需要包含头文件< algorithm >;
2、注意参数,一共有四个参数,其中前三个都是迭代器,第四个决定了转为大写还是小写。
3、第四个参数前面要有“::”符号。
4、第四个参数不要加括号
补充
#include <string>
#include<iostream>
#include <algorithm>
using namespace std;
int main()
{
string str = "ab123cdefg456,. HIJKLMN";
//转小写
transform(str.begin(),str.end(),str.begin(),::tolower);
cout<<str<<endl;
//转大写
transform(str.begin(),str.end(),str.begin(),::toupper);
cout<<str<<endl;
return 0;
}
//运行结果
ab123cdefg456,. hijklmn
AB123CDEFG456,. HIJKLMN
在str中加入了数字、标点符号以及空格符,之后分别转为小写、大写。发现只是将str中的字符进行了相应的转化,其余的字符并没有发生变化。
也就是说,可以对包含有不仅仅包含字母字符的string进行转换。
不用自己去写函数实现转换string中的单词大小写了。