一、基本概念
在編程過程中,我們常常需要將字符串中的小寫字母全部轉化為大寫字母,以便於處理數據;或者將用戶輸入的字符串進行標準化處理。這裡我們將會介紹幾種實現方式。
二、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-hk/n/285220.html