STL的algorithm库确实给我们提供了这样的便利,使用模板函数transform可以轻松解决这个问题,开发人员只需要提供一个函数对象,例如将char转成大写的toupper函数或者小写的函数tolower函数。

 

transform原型:


 




string 大小写转换_模板函数

1 #include <string>  
2 #include <algorithm>
3 using namespace std;
4
5 int main()
6 {
7 string strA = "yasaken@126.com";
8 string strB = "LURY@LENOVO.com";
9 printf("Before transform:\n");
10 printf("strA:%s \n", strA.c_str());
11 printf("strB:%s \n\n", strB.c_str());
12
13 transform(strA.begin(), strA.end(), strA.begin(), ::toupper);
14 transform(strB.begin(), strB.end(), strB.begin(), ::toupper);
15 printf("After transform to toupper:\n");
16 printf("strA:%s \n", strA.c_str());
17 printf("strB:%s \n\n", strB.c_str());
18
19 transform(strA.begin(), strA.end(), strA.begin(), ::tolower);
20 transform(strB.begin(), strB.end(), strB.begin(), ::tolower);
21 printf("After transform to lower:\n");
22 printf("strA:%s \n", strA.c_str());
23 printf("strB:%s \n\n", strB.c_str());
24 return 0;
25 }


string 大小写转换_模板函数


运行结果:




string 大小写转换_模板函数

1 strA:yasaken@126.com   
2 strB:LURY@LENOVO.com
3
4 After transform to toupper:
5 strA:YASAKEN@126.COM
6 strB:LURY@LENOVO.COM
7
8 After transform to lower:
9 strA:yasaken@126.com
10 strB:lury@lenovo.com


string 大小写转换_模板函数

 


       STL的algorithm库确实给我们提供了这样的便利,使用模板函数transform可以轻松解决这个问题,开发人员只需要提供一个函数对象,例如将char转成大写的toupper函数或者小写的函数tolower函数。

 

transform原型:


 




string 大小写转换_模板函数

1 #include <string>  
2 #include <algorithm>
3 using namespace std;
4
5 int main()
6 {
7 string strA = "yasaken@126.com";
8 string strB = "LURY@LENOVO.com";
9 printf("Before transform:\n");
10 printf("strA:%s \n", strA.c_str());
11 printf("strB:%s \n\n", strB.c_str());
12
13 transform(strA.begin(), strA.end(), strA.begin(), ::toupper);
14 transform(strB.begin(), strB.end(), strB.begin(), ::toupper);
15 printf("After transform to toupper:\n");
16 printf("strA:%s \n", strA.c_str());
17 printf("strB:%s \n\n", strB.c_str());
18
19 transform(strA.begin(), strA.end(), strA.begin(), ::tolower);
20 transform(strB.begin(), strB.end(), strB.begin(), ::tolower);
21 printf("After transform to lower:\n");
22 printf("strA:%s \n", strA.c_str());
23 printf("strB:%s \n\n", strB.c_str());
24 return 0;
25 }


string 大小写转换_模板函数


运行结果:




string 大小写转换_模板函数

1 strA:yasaken@126.com   
2 strB:LURY@LENOVO.com
3
4 After transform to toupper:
5 strA:YASAKEN@126.COM
6 strB:LURY@LENOVO.COM
7
8 After transform to lower:
9 strA:yasaken@126.com
10 strB:lury@lenovo.com


string 大小写转换_模板函数