一、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
微信掃一掃
支付寶掃一掃