字串切割的使用頻率還是挺高的,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)292、通過使用strtok()函式實現//方便擷取最後一段資料
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 }
原型: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(conststring &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,達到反轉...