原文:http://www.cnblogs.com/balingybj/p/4678850.html
STL的algorithm库确实给我们提供了这样的便利,使用模板函数transform可以轻松解决这个问题,开发人员只需要提供一个函数对象,例如将char转成大写的toupper函数或者小写的函数tolower函数。
transform原型:
#include<string>
#include<algorithm>
usingnamespace std;
intmain()
{
string strA ="yasaken@126.com";
string strB ="LURY@LENOVO.com";
printf("Beforetransform:\n");
printf("strA:%s \n",strA.c_str());
printf("strB:%s \n\n",strB.c_str());
transform(strA.begin(), strA.end(),strA.begin(), ::toupper);
transform(strB.begin(), strB.end(), strB.begin(),::toupper);
printf("After transform totoupper:\n");
printf("strA:%s \n",strA.c_str());
printf("strB:%s \n\n",strB.c_str());
transform(strA.begin(), strA.end(),strA.begin(), ::tolower);
transform(strB.begin(), strB.end(),strB.begin(), ::tolower);
printf("After transform tolower:\n");
printf("strA:%s \n",strA.c_str());
printf("strB:%s \n\n",strB.c_str());
return 0;
}
运行结果:
strA:yasaken@126.com
strB:LURY@LENOVO.com
Aftertransform to toupper:
strA:YASAKEN@126.COM
strB:LURY@LENOVO.COM
Aftertransform to lower:
strA:yasaken@126.com
strB:lury@lenovo.com