C 字串切割的兩種方法

2022-03-11 22:55:26 字數 1393 閱讀 4537

字串切割的使用頻率還是挺高的,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)

返回值:子字串

**如下:

std::vector

splitwithstl(const

std::string &str,const

std::string &pattern)

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

std::string strs = str + pattern;

size_t pos = strs.find(pattern);

size_t size = strs.size();

while (pos != std::string::npos)

return resvec;

}

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替代。

**如下:

std::vector

split(const

std::string &str,const

std::string &pattern)

delete strc;

return resultvec;

};

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,達到反轉...

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...