string轉小寫的各種實現方式

一、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-hant/n/318194.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
DYQRM的頭像DYQRM
上一篇 2025-01-11 16:28
下一篇 2025-01-11 16:28

相關推薦

  • c# enum轉換成string

    本文將從以下幾個方面詳細闡述c#中enum類型轉換成string類型的方法及注意事項。 一、基本語法和示例 c#中的enum類型可以看作是一組有名字的常量值,通常用於定義一組相關的…

    編程 2025-04-29
  • Python緩存圖片的處理方式

    本文將從多個方面詳細闡述Python緩存圖片的處理方式,包括緩存原理、緩存框架、緩存策略、緩存更新和緩存清除等方面。 一、緩存原理 緩存是一種提高應用程序性能的技術,在網絡應用中流…

    編程 2025-04-29
  • Python在線編輯器的優勢與實現方式

    Python在線編輯器是Python語言愛好者的重要工具之一,它可以讓用戶方便快捷的在線編碼、調試和分享代碼,無需在本地安裝Python環境。本文將從多個方面對Python在線編輯…

    編程 2025-04-28
  • Java表單提交方式

    Java表單提交有兩種方式,分別是get和post。下面我們將從以下幾個方面詳細闡述這兩種方式。 一、get方式 1、什麼是get方式 在get方式下,表單的數據會以查詢字符串的形…

    編程 2025-04-27
  • 用Pythonic的方式編寫高效代碼

    Pythonic是一種編程哲學,它強調Python編程風格的簡單、清晰、優雅和明確。Python應該描述為一種語言而不是一種編程語言。Pythonic的編程方式不僅可以使我們在編碼…

    編程 2025-04-27
  • Java多版本支持實現方式

    本文將從以下幾個方面闡述如何實現Java多版本支持,並給出可行的代碼示例。 一、多版本Java環境概述 Java是一門跨平台的編程語言,但是在不同的應用場景下,可能需要使用不同版本…

    編程 2025-04-27
  • SpringBoot Get方式請求傳參用法介紹

    本文將從以下多個方面對SpringBoot Get方式請求傳參做詳細的闡述,包括URL傳參、路徑傳參、請求頭傳參、請求體傳參等,幫助讀者更加深入地了解Get請求方式下傳參的相關知識…

    編程 2025-04-27
  • Python獲取APP數據的多種方式

    如果您需要對APP進行分析、數據採集、監控或者自動化測試,那麼您一定需要獲取APP的數據。本文將會介紹一些Python獲取APP數據的方式。 一、使用ADB工具獲取APP數據 AD…

    編程 2025-04-27
  • Python中用空格隔開的使用方式

    Python是一種高級編程語言,非常流行,因為它有很多有用的功能。其中一個有用的功能是用空格隔開代碼。在本文中,我們將從多個方面討論Python中如何使用空格隔開代碼。 一、Pyt…

    編程 2025-04-27
  • HTTP請求方式的選擇:POST還是GET?

    對於使用xxl-job進行任務調度的開發者,通常需要發送HTTP請求來執行一些任務。但是在發送請求時,我們總是會遇到一個問題:是使用POST還是GET?下面將從多個方面對這個問題進…

    編程 2025-04-27

發表回復

登錄後才能評論