例子:
char exchange(char c)
{
if (c <= 'Z' && c >= 'A')
c = tolower(c);
else if (c >= 'a' && c <= 'z')
c = toupper(c);
return c;
}
tolower 转小写
toupper 转大写
全部转小写
char op(char ch)
{
if(ch>='A'&&ch<='Z')
return ch+32;
else
return ch;
}
全部转大写同理
std::transform用法
transform(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _UnaryOperation __op)
头文件包括
#include <algorithm>
#include <iostream>
#include <algorithm>
using namespace std;
char op(char ch)
{
if(ch>='A'&&ch<='Z')
return ch+32;
else
return ch;
}
int main()
{
string first,second;
cin>>first;
second.resize(first.size());
transform(first.begin(),first.end(),second.begin(),op);
cout<<second<<endl;
return 0;
}
op也可以换成兰布达表达式
示例
std::string str = "Http";
transform(str.begin(), str.end(), str.begin(), ::tolower); //将大写的都转换成小写
transform(str.begin(), str.end(), str.begin(), ::toupper); //将小写的都转换成大写
transform(str.begin(), str.end(), str.begin(), exchange); //大小写切换
注以上结果都保存在str中。