VC中,字串的分割

2021-04-12 19:18:11 字數 1290 閱讀 9758

想請教下,在vc當中,要重新寫乙個 類似 split 的 類該怎麼做?

現在的要求是,對乙個字串進行分割,並放到陣列當中去.

基本實現想法如下:

定義:char str[256]="123,&456,&789&10"; // 將要被分割的字串

char *pstrbuf[256];// 字串陣列,用來存放分開的字串

int nbuf; // 表示分成幾段;

char parseid[256]=",&" // 分割識別符號號

函式:void stringparse(char* pstrline,// 將要被分割的字串

char** pstrbuf,// 字串陣列,用來儲存分開後的字串

int* nbuf,// 分割成幾段

char* pstrtoksep); // 分割識別符號號

char* pstrtoken;

*nbuf = 0;

/* strtok(char *strtoken,const char *strdelimit )

strtoken和strdelimit一定要用字元陣列格式的。

也就是說。入口只能是字元陣列元素位址

*/pstrtoken = strtok(pstrline, pstrtoksep);

while(pstrtoken != null)

現在,要把 ,& 作為 乙個分割識別符號號.通過上面的函式進行分割.

預想的分割結果是:

該字串被分成3段.

pstrbuf[0] = "123";

pstrbuf[1] = "456";

pstrbuf[2] = "789&10";

但是,我現在分割出來的效果是:

該字串被分成4段.

pstrbuf[0] = "123";

pstrbuf[1] = "456";

pstrbuf[2] = "789";

pstrbuf[3] = "10";

請高手幫助啊~~~~~~~~~~怎麼樣讓程式把",&"看做乙個整體.執行出我現在的效果就是說明 ",&" 不是乙個整體.

按你的要求,strtok已經滿足不了你的要求,用strstr控制指標位置:

void stringparse(char* pstrline,// 將要被分割的字串

char** pstrbuf,// 字串陣列,用來儲存分開後的字串

int* nbuf,// 分割成幾段

char* pstrtoksep) // 分割識別符號號

pstrbuf[i] = pstrline;

}

VC 字串轉化和分割

備忘 為了適用於unicode環境,要養成使用 t 巨集的習慣 1 格式化字串 cstring s s.format t the num is d.i 2 轉為 int 轉10進製最好用 ttoi 它在 ansi 編碼系統中被編譯成 atoi 而在 unicode 編碼系統中編譯成 wtoi 用 t...

VC實現字串分割的函式strtok

原型 char strtok char s,const char delim 標頭檔案 include strtok 函式分割字串為一組字串。引數s為想要分割的字串,引數delim則為分割字串中包含的所有字元,delimiters支援多個分割符。當strtok 在引數s的字串中發現引數delim中包...

mysql分割字串 mysql分割字串

專案有通過一批id去過濾結果的需求,因為這個id是從其他平台拉下來的excel,為了避免加引號逗號的麻煩,在mysql儲存過程裡面拼接。在此做個記錄。很多地方用得上。1.通過某個字元,分割字串的函式。輸入分別為f string 待分割字串 f delimiter 分割字元 f order 取的字串的...