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