STL的algorithm庫確實給我們提供了這樣的便利,使用模板函數transform可以輕松解決這個問題,開發人員只需要提供一個函數對象,例如將char轉成大寫的toupper函數或者小寫的函數tolower函數。
transform原型:
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 }
運行結果:
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

