一、基本概念
在編程過程中,我們常常需要將字元串中的小寫字母全部轉化為大寫字母,以便於處理數據;或者將用戶輸入的字元串進行標準化處理。這裡我們將會介紹幾種實現方式。
二、for循環實現
for循環實現轉換方法:
// 字元串轉大寫 #include #include using namespace std; string toUpper(string s){ for(int i=0;i='a' && s[i]<='z'){ s[i]=s[i]-('a'-'A'); } } return s; } int main(){ string s="I love C++"; cout<<toUpper(s)<<endl; return 0; }
代碼實現通過循環逐個判斷字元串中字元,判斷是否為小寫字母,若是,利用ASCII碼進行轉換。
三、algorithm庫實現
實現代碼:
// 字元串轉大寫 #include #include #include using namespace std; int main(){ string s="I love C++"; transform(s.begin(),s.end(),s.begin(),::toupper); cout<<s<<endl; return 0; }
代碼實現使用STL庫中的algorithm,具體是transform函數,利用函數指針toupper及迭代器,對字元串進行循環逐個判斷,若是小寫字母,利用toupper函數進行轉換。
四、lambda表達式實現
實現代碼:
// 字元串轉大寫 #include #include #include using namespace std; int main(){ string s="I love C++"; transform(s.begin(),s.end(),s.begin(),[](unsigned char c){ return toupper(c);}); cout<<s<<endl; return 0; }
代碼實現與algorithm幾乎相同,僅僅是利用了lambda表達式來作為函數指針,實現了更簡潔的代碼風格。
五、擴展應用
字元串轉大寫不僅僅只是將小寫字母轉大寫,還有其他許多應用。
例如:將16進位數表示轉化為大寫形式,實現如下:
// 16進位字元串轉大寫,例:a1B4c7 --> A1B4C7 #include #include #include using namespace std; int main(){ string s="a1B4c7"; transform(s.begin(),s.end(),s.begin(),[](unsigned char c){ return toupper(c);}); cout<<s<<endl; return 0; }
上述代碼就將16進位字元串中的小寫字母進行了轉換。
六、總結
本文對string轉大寫進行了詳細的介紹並分享了幾個實現方式,從基本概念到代碼實現,再到擴展應用。希望可以對大家學習string的使用和編程有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/285220.html