string截取詳解

一、string截取指定字元串

string截取功能可以用於字元串的處理,例如從字元串中截取指定字元,指定位置,以及指定長度等等。其中,截取指定字元串可以使用substr函數。

    string str = "hello world";
    string substr = str.substr(6,5);

上述代碼中,substr函數第一個參數是截取的起始位置,第二個參數是截取的長度。上面的代碼表示從字元串”hello world”中截取第6個位置開始的長度為5的字元串,即”world”。

二、string截取字元串的右側數據

藉助substr函數,還可以對字元串進行右截取。例如我們想要得到字元串的右邊3個字元,可以這樣寫:

    string s = "abcdefg";
    string s_right = s.substr(s.length() - 3, 3); // "efg"

其中,s.length()表示字元串s的長度,因此(s.length() – 3)表示字元串右側第三個字元的位置,而第二個參數3表示要截取的長度。

三、string截取最後兩位

和上面類似,想要得到一個字元串的最後兩位,只需要調用substr函數,指定起始位置為字元串長度減二即可。

    string str = "abcdefgh";
    string str_last_two = str.substr(str.length() - 2, 2); // "gh"

四、string截取最後一個逗號

假設我們有一個字元串s,其中包含多個逗號分隔的字元串,我們想要獲得這個字元串中最後一個逗號後面的內容。可以先用substr函數得到逗號的位置,然後再進行截取。

    string s = "a,b,c,d,e,f";
    auto pos = s.rfind(",");
    string res = pos == string::npos ? s : s.substr(pos + 1); // "f"

在上述代碼中,rfind函數是從字元串的右側開始查找給定字元(逗號)的位置。如果沒有查找到,則返回string::npos,表示未找到。如果找到了逗號,就可以用substr函數得到逗號後面的內容。

五、string截取前八位

要截取一個字元串的前八位,可以調用substr函數,指定截取的起始位置為0,長度為8。

    string s = "abcdefgh";
    string res = s.substr(0, 8); // "abcdefg"

六、string截取前四位

如果想要截取一個字元串的前四位,同樣也是使用substr函數,指定截取的長度為4,起始位置為0。

    string s = "abcdefgh";
    string res = s.substr(0, 4); // "abcd"

七、string截取指定位置

對於一個字元串,需要截取其中的一部分,可以使用substr函數。例如,如果我們想要截取一個字元串的第5個位置之後的子字元串,可以寫成:

    string s = "abcdefgh";
    string res = s.substr(4); // "efgh"

八、string截取以前的內容

如果需要截取一個字元串中某個子串出現之前的內容,可以使用find函數和substr函數。例如,如果s是一個字元串,其中有一個子串”world”,我們需要截取其出現之前的內容,可以這樣寫:

    string s = "hello world";
    auto pos = s.find("world");
    string res = pos == string::npos ? s : s.substr(0, pos); // "hello "

九、string截取後三位

如果需要截取一個字元串的後面幾位,同樣可以使用substr函數。例如,如果我們需要截取一個字元串的後三位,可以寫成:

    string s = "abcdefgh";
    string res = s.substr(s.length() - 3); // "fgh"

十、string截取分隔符內容

如果需要從一個字元串中截取某幾個分隔符之間的內容,可以用find函數和substr函數結合。假設我們有一個字元串,其中包含多個以逗號分隔的字元串。我們需要獲取第三個逗號後面的內容,可以這樣寫:

    string s = "a,b,c,d,e,f";
    auto pos = s.find(",");
    for (int i = 0; i < 3; ++i)
    {
        pos = s.find(",", pos + 1);
        if (pos == string::npos)
        {
            break;
        }
    }
    string res = pos == string::npos ? s : s.substr(pos + 1); // "d,e,f"

在上述代碼中,首先用find函數找到第一個逗號的位置,然後在循環中一直向後找逗號,直到找到第三個為止。最後,用substr函數從第三個逗號的位置開始獲取字元串內容。

原創文章,作者:EGAE,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/141696.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
EGAE的頭像EGAE
上一篇 2024-10-08 17:56
下一篇 2024-10-08 17:56

相關推薦

  • c# enum轉換成string

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

    編程 2025-04-29
  • JWT String Argument Cannot Be Null or Empty

    JWT(JSON Web Token)是一種用於進行身份驗證的標準。在使用JWT時,經常會遇到「JWT String Argument Cannot Be Null or Empt…

    編程 2025-04-27
  • Python中String包含的進階應用

    對於Python程序員而言,String類型的操作是日常工作中必不可少的一部分。String包含的操作很多,其中最基礎的操作就是判斷一個字元串是否包含另一個字元串。本篇文章將對Py…

    編程 2025-04-27
  • 神經網路代碼詳解

    神經網路作為一種人工智慧技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網路的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網路模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變數讀取等系統級操作。 OS庫中包含了大量的文件和目…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web伺服器。nginx是一個高性能的反向代理web伺服器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25

發表回復

登錄後才能評論