c++字符串char[]數(shù)組分割split問(wèn)題
c++字符串char[]數(shù)組分割split
使用c++提供的strtok進(jìn)行字符串?dāng)?shù)組分割,話不多說(shuō),
上代碼:
#include <iostream> #include <string> #include <vector> using namespace std; int main() { vector<char*> res_split;//存儲(chǔ)分割后的字符串 char *name = "camera 10_2020821_1_23.bmp"; char image_name[100]; strcpy(image_name, name); const char split[] = "_"; char* res = strtok(image_name, split);//image_name必須為char[] while (res != NULL) { res_split.push_back(res); cout <<res << endl; res = strtok(NULL, split); } cout << res_split.at(2) << endl; system("pause"); return 0; }
輸出結(jié)果:
c++中的Split函數(shù)(字符串自動(dòng)分割)
函數(shù)原型
C/C++中的Split函數(shù)是strtok(),其函數(shù)原型如下:
char * strtok (char * str, const char * delimiters);
函數(shù)說(shuō)明
strtok()用來(lái)將字符串分割成一個(gè)個(gè)片段。參數(shù)str指向欲分割的字符串,參數(shù)delimiters則為分割字符串,當(dāng)strtok()在參數(shù)str的字符串中發(fā)現(xiàn)到參數(shù)delimiters的分割字符時(shí)則會(huì)將該字符改為‘\0’字符。
在第一次調(diào)用時(shí),strtok()必需給予參數(shù)str字符串,往后的調(diào)用則將參數(shù)str設(shè)置成NULL。
每次調(diào)用成功則返回下一個(gè)分割后的字符串指針。
返回值返回下一個(gè)分割后的字符串指針,如果已無(wú)從分割則返回NULL。
代碼示例
#include <string> #include "stdio.h" int main () { char str[] ="a,b,c,d*e"; const char * split = ","; char * p; p = strtok (str,split); while(p!=NULL) { printf ("%s\n",p); p = strtok(NULL,split); } return 0; }
本例中,實(shí)現(xiàn)對(duì)字符串’a,b,c,d*e”用逗號(hào)(,)來(lái)作界定符對(duì)字符串進(jìn)行分割。
輸出結(jié)果將如下所示:
a
b
c
d*e
因?yàn)閐elimiters支持多個(gè)分割符, 我們將本示例中的語(yǔ)句行
const char * split = “,”;
改成
const char * split = “,“; //用逗號(hào)(,)和星號(hào)()對(duì)字符串進(jìn)行分割
這樣輸出結(jié)果將如下:
a
b
c
d
e
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
c++ 預(yù)處理之正整型實(shí)現(xiàn)方法
這篇文章主要介紹了c++ 預(yù)處理之正整型實(shí)現(xiàn)方法,需要的朋友可以參考下2017-07-07OpenGL實(shí)現(xiàn)3D空間中移動(dòng)圖像
這篇文章主要為大家詳細(xì)介紹了OpenGL實(shí)現(xiàn)3D空間中移動(dòng)圖像,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08C語(yǔ)言中的內(nèi)存泄露 怎樣避免與檢測(cè)
堆經(jīng)常會(huì)出現(xiàn)兩種類(lèi)型的問(wèn)題:1.釋放或改寫(xiě)仍在使用的內(nèi)存(稱(chēng)為:“內(nèi)存損壞”)。2.未釋放不再使用的內(nèi)存(稱(chēng)為:“內(nèi)存泄露”)。這是最難被調(diào)試發(fā)現(xiàn)的問(wèn)題之一2013-09-09利用C語(yǔ)言的Cairo圖形庫(kù)繪制太極圖實(shí)例教程
這幾天都在研究Cairo圖形庫(kù),這是一個(gè)開(kāi)源跨平臺(tái)的圖形庫(kù),相對(duì)于OpenGL來(lái)說(shuō)更容易上手使用。這篇文章是利用C語(yǔ)言的Cairo圖形庫(kù)繪制了一個(gè)太極圖,對(duì)大家學(xué)習(xí)Cairo圖形庫(kù)具有一定的參考借鑒價(jià)值,下面來(lái)一起看看吧。2016-12-12C語(yǔ)言驅(qū)動(dòng)開(kāi)發(fā)之內(nèi)核通過(guò)PEB獲取進(jìn)程參數(shù)
PEB結(jié)構(gòu)(Process Envirorment Block Structure)其中文名是進(jìn)程環(huán)境塊信息。本文將通過(guò)PEB實(shí)現(xiàn)獲取進(jìn)程參數(shù),感興趣的小伙伴可以了解一下2022-10-10C語(yǔ)言實(shí)現(xiàn)掃雷小游戲簡(jiǎn)單版
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)掃雷小游戲簡(jiǎn)單版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07