欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解C++ string常用截取字符串方法

 更新時(shí)間:2019年05月15日 09:03:22   作者:C趙江松  
這篇文章主要介紹了C++ string常用截取字符串方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

string常用截取字符串方法有很多,但是配合使用以下兩種,基本都能滿足要求:

find(string strSub, npos);

find_last_of(string strSub, npos);

其中strSub是需要尋找的子字符串,npos為查找起始位置。找到返回子字符串首次出現(xiàn)的位置,否則返回-1;

注:

(1)find_last_of的npos為從末尾開始尋找的位置。

(2)下文中用到的strsub(npos,size)函數(shù),其中npos為開始位置,size為截取大小

例1:直接查找字符串中是否具有某個(gè)字符串(返回"2")

std::string strPath = "E:\\數(shù)據(jù)\\2018\\2000坐標(biāo)系\\a.shp"
int a = 0; 
if (strPath.find("2018") == std::string::npos)
{
	a = 1;
}
else
{
	a = 2;
}
return a;

例2:查找某個(gè)字符串的字符串(返回“E:”)

std::string strPath = "E:\\數(shù)據(jù)\\2018\\2000坐標(biāo)系\\a.shp"
int nPos = strPath.find("\\");
if(nPos != -1)
{
  strPath = strPath.substr(0, nPos);
}
return strPath;

例3:查找某個(gè)字符串中某兩個(gè)子字符串之間的字符串(返回“2000坐標(biāo)系”)

std::string strPath = "E:\\數(shù)據(jù)\\2018\\2000坐標(biāo)系\\a.shp"
std::string::size_type nPos1 = std::string::npos;
std::string::size_type nPos2 = std::string::npos;
nPos1 = strPath.find_last_of("\\");
nPos2 = strPath.find_last_of("\\", nPos1 - 1);
if(nPos1 !=-1 && npos2 != -1)
{
  strPath = strPath.substr(nPos2 + 1, nPos1 - nPos2 - 1);
}
return strPath;

提高:遞歸獲取路徑名中的子目錄

//獲取路徑名中的子目錄:strPath為路徑名,strSubPath為輸出的子目錄,
 nSearch為從尾向前檢索的級(jí)別(默認(rèn)為1級(jí))
 
bool _GetSubPath(std::string& strPath,std::string& strSubPath, int nSearch)
{	
	if (-1 == nSearch || strPath.empty())
		return false;
	std::string::size_type nPos1 = std::string::npos;
	nPos1 = strPath.find_last_of("\\");
	if (nPos1 != -1)
	{
		strSubPath = strPath.substr(nPos1 + 1, strPath.length() - nPos1);
		int nNewSearch = nSearch > 1 ? nSearch - 1 : -1;
		_GetSubPath(strPath.substr(0, nPos1), strSubPath, nNewSearch);
	}
	return true;
}
 
int main()
{
  std::string strPath = "E:\\數(shù)據(jù)\\2018\\2000坐標(biāo)系\\a.shp";
  std::string strSubPath = "";
  if(_GetSubPath(strPath, strSubPath, 1)
  {
    printf(“返回'a.shp'”);
  }
  if(_GetSubPath(strPath, strSubPath, 2)
  {
    printf(“返回'2000坐標(biāo)系'”);
  }
}

以上所述是小編給大家介紹的C++ string常用截取字符串方法詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • C++ 中try finally關(guān)鍵字詳解

    C++ 中try finally關(guān)鍵字詳解

    本文給大家介紹C++ 中try finally關(guān)鍵字的相關(guān)知識(shí),非常不錯(cuò),本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • C++指針學(xué)習(xí)詳解

    C++指針學(xué)習(xí)詳解

    指針在 C\C++ 語(yǔ)言中是很重要的內(nèi)容,并且和指針有關(guān)的內(nèi)容一向令初學(xué)者頭大,這篇文章主要給大家介紹了關(guān)于C/C++中指針的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • C++實(shí)現(xiàn)的打字母游戲示例

    C++實(shí)現(xiàn)的打字母游戲示例

    這篇文章主要介紹了C++實(shí)現(xiàn)的打字母游戲,涉及C++字體操作、時(shí)間及鍵盤響應(yīng)相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • C/C++實(shí)現(xiàn)馬踏棋盤算法

    C/C++實(shí)現(xiàn)馬踏棋盤算法

    這篇文章主要為大家詳細(xì)介紹了C/C++實(shí)現(xiàn)馬踏棋盤算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • floyd算法實(shí)現(xiàn)思路及實(shí)例代碼

    floyd算法實(shí)現(xiàn)思路及實(shí)例代碼

    這篇文章主要介紹了floyd算法實(shí)現(xiàn)思路及實(shí)例代碼,有需要的朋友可以參考一下
    2014-01-01
  • static_cast,dynamic_cast,reinterpret_cast和const_cast的區(qū)別詳解

    static_cast,dynamic_cast,reinterpret_cast和const_cast的區(qū)別詳解

    以下是對(duì)static_cast,dynamic_cast,reinterpret_cast和const_cast之間的區(qū)別進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-09-09
  • C語(yǔ)言深入探究程序的編譯之預(yù)處理

    C語(yǔ)言深入探究程序的編譯之預(yù)處理

    在C語(yǔ)言的程序中包括各種以符號(hào)#開頭的編譯指令,這些指令稱為預(yù)處理命令。預(yù)處理命令屬于C語(yǔ)言編譯器,而不是C語(yǔ)言的組成部分,通過(guò)預(yù)處理命令可擴(kuò)展C語(yǔ)言程序設(shè)計(jì)的環(huán)境
    2022-05-05
  • 如何通過(guò)函數(shù)指針調(diào)用函數(shù)(實(shí)現(xiàn)代碼)

    如何通過(guò)函數(shù)指針調(diào)用函數(shù)(實(shí)現(xiàn)代碼)

    指針可以不但可以指向一個(gè)整形,浮點(diǎn)型,字符型,字符串型的變量,也可以指向相應(yīng)的數(shù)組,而且還可以指向一個(gè)函數(shù)
    2013-09-09
  • 千萬(wàn)不要被階乘嚇倒

    千萬(wàn)不要被階乘嚇倒

    本篇文章是對(duì)階乘進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++中LibCurl庫(kù)的使用教程分享

    C++中LibCurl庫(kù)的使用教程分享

    LibCurl是一個(gè)開源的免費(fèi)的多協(xié)議數(shù)據(jù)傳輸開源庫(kù),該框架具備跨平臺(tái)性,開源免費(fèi),這篇文章主要為大家介紹了如何在C++中使用LibCurl庫(kù),需要的可以參考下
    2023-08-08

最新評(píng)論