一、string轉小寫字母
string轉小寫字母是一項常見的字元串操作任務。在C++中,我們可以通過循環遍歷字元串並按照ASCII碼進行位移的方式來實現。
<string> <algorithm> using namespace std; void to_lower(string& str) { transform(str.begin(), str.end(), str.begin(), ::tolower); } int main() { string s = "HELLO WORLD"; to_lower(s); cout << s << endl; return 0; }
上述代碼中,我們使用了algorithm頭文件中的transform()函數來實現遍歷操作,使用::tolower來進行小寫字母的轉換。
二、string轉換成小寫
除了可以遍歷字元串進行小寫轉換操作,C++中還提供了許多高效的庫函數來實現這一目標。
#include #include using namespace std; string to_lower(string str) { transform(str.begin(), str.end(), str.begin(), ::tolower); return str; } string to_lower_case(string str) { locale loc; for (int i = 0; i < str.size(); ++i) { str[i] = tolower(str[i], loc); } return str; } int main() { string s = "HELLO WORLD"; cout << to_lower(s) << endl; cout << to_lower_case(s) << endl; return 0; }
其中,我們使用了locale標準庫中的tolower()函數來實現字元的小寫轉換,並使用了C++11中的auto關鍵字來自動判斷返回值類型。
三、string轉小寫函數
依靠谷歌來實現string轉小寫函數:
#include using namespace std; string tolower(string s) { transform(s.begin(), s.end(), s.begin(), [](unsigned char c){ return tolower(c); }); return s; } int main() { string s = "HELLO WORLD"; cout << tolower(s) << endl; return 0; }
上述代碼中使用了lambda表達式來實現對字元的小寫轉換,同時使用了C++11的auto關鍵字來自動推斷返回類型。
四、c++ string 轉小寫
如果使用C++ string來實現小寫轉換,我們可以直接使用在algorithm頭文件中定義的transform()函數,將每個字元轉換為小寫字元即可:
#include #include using namespace std; string tolower(string s) { transform(s.begin(), s.end(), s.begin(), ::tolower); return s; } int main() { string s = "HELLO WORLD"; cout << tolower(s) << endl; return 0; }
五、std::string 轉小寫
C++標準庫中的std::string類中也有小寫轉換函數,我們可以使用transform()函數和tolower()函數來實現:
#include #include using namespace std; string tolower(string s) { locale loc; for (int i=0; i<s.size(); ++i) { s[i] = tolower(s[i],loc); } return s; } int main() { string s = "HELLO WORLD"; cout << tolower(s) << endl; return 0; }
六、string大寫轉小寫
和小寫轉大寫很類似,只需要將toupper()函數替換為tolower()函數即可:
#include #include using namespace std; string tolower(string s) { transform(s.begin(), s.end(), s.begin(), ::tolower); return s; } string toupper(string s) { transform(s.begin(), s.end(), s.begin(), ::toupper); return s; } int main() { string s = "HELLO WORLD"; cout << tolower(s) << endl; cout << toupper(s) << endl; return 0; }
七、string轉list
在C++中,如果我們需要將一個字元串按照某個特定的分隔符進行分割,並將分割後的內容存入一個list中,可以使用下面的代碼:
#include #include #include using namespace std; list split(const string& str, char delimiter=' ') { list result; stringstream ss(str); string item; while (getline(ss, item, delimiter)) { result.push_back(item); } return result; } int main() { string s = "hello world"; list l = split(s); for (auto& item: l) { cout << item << endl; } return 0; }
在上述代碼中,我們使用了std::stringstream和std::getline()函數來實現字元串分割的操作。可以根據需要設定分隔符來分割字元串。
八、string轉integer
如果我們需要將一個字元串轉換為整數,可以使用C++標準庫提供的stol()函數:
#include #include using namespace std; int main() { string s = "123"; long res = stol(s); cout << res << endl; return 0; }
九、string轉byte
在C++中,同樣可以將一個字元串表示的信息轉換為二進位數據。一個位元組可以被表示為char類型。我們可以使用static_cast()函數將其轉換為char類型:
#include #include using namespace std; int main() { string s = "A"; char res = static_cast(s.data()[0]); cout << (int)res << endl; return 0; }
在上述代碼中,我們將string類型的數據轉換為char類型,並強制轉換為整數輸出。
原創文章,作者:DYQRM,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/318194.html