C 分割字串兩種方法

2021-08-19 16:43:09 字數 1386 閱讀 6231

字串切割的使用頻率還是挺高的,string本身沒有提供切割的方法,但可以使用stl提供的封裝進行實現或者通過c函式strtok()函式實現。

1、通過stl實現

涉及到string類的兩個函式find和substr: 

1、find函式 

原型:size_t find ( const string& str, size_t pos = 0 ) const; 

功能:查詢子字串第一次出現的位置。 

引數說明:str為子字串,pos為初始查詢位置。 

返回值:找到的話返回第一次出現的位置,否則返回string::npos

2、substr函式 

原型:string substr ( size_t pos = 0, size_t n = npos ) const; 

功能:獲得子字串。 

引數說明:pos為起始位置(預設為0),n為結束位置(預設為npos) 

返回值:子字串 

**如下:

1 std::vectorstring> splitwithstl(const std::string &str,const std::string &pattern)29

//方便擷取最後一段資料

10 std::string strs = str +pattern;

1112 size_t pos =strs.find(pattern);

13 size_t size =strs.size();

1415

while (pos != std::string

::npos)

1622

23return

resvec;

24 }

2、通過使用strtok()函式實現

原型:char *strtok(char *str, const char *delim); 

功能:分解字串為一組字串。s為要分解的字串,delim為分隔符字串。 

描述:strtok()用來將字串分割成乙個個片段。引數s指向欲分割的字串,引數delim則為分割字串,當strtok()在引數s的字串中發現到引數delim的分割字元時 則會將該字元改為\0 字元。在第一次呼叫時,strtok()必需給予引數s字串,往後的呼叫則將引數s設定成null。每次呼叫成功則返回被分割出片段的指標。

其它:strtok函式執行緒不安全,可以使用strtok_r替代。 

**如下:

vector split(const

string &str,const

string &pattern)

delete

strc;

return

resultvec;

}

qt 分割字串的兩種方法

1.split 按照指定的字元分割,如按照 或 等分割 qstring str hello,world qstringlist list str.split qstring a list 0 a hello qstring b list 1 b world str2 worldhello 2.min...

C 字串切割的兩種方法

字串切割的使用頻率還是挺高的,string本身沒有提供切割的方法,但可以使用stl提供的封裝進行實現或者通過c函式strtok 函式實現。1 通過stl實現 涉及到string類的兩個函式find和substr 1 find函式 原型 size t find const string str,siz...

字串反轉的兩種方法

名稱 字串反轉的兩種方法 說明 此處用了兩種方法進行前後對稱字串互換,常規的方法是第乙個字元和最後 乙個字元互換,第二個字元和倒數第二個字元互換 第二個方法是利用函式遞迴,即str為abcde,每次遞迴使之處理的str為bcde cde de e,然後e ed edc edcb edcba,達到反轉...