一._tcstok函式在
mfc中,乙個
cstring str=「ab ac dd pm」
,怎麼把他分開成ab和
ac和dd和
pm這四個字串,類似
string
的split
的功能?
_tcstok宣告標頭檔案:
char* _tcstok( char* strtoken, const
char* strdelimit );
該函式是可以從乙個
cstring
串中,根據提供的分隔符,擷取並返回乙個乙個的
token;
引數:
strtoken:
是乙個要分析的串;這個串中包含乙個或者多個
token
,當然還有分隔符,也有可
能有其他的字元;
strdelimit:
是分隔符;根據分隔符把
strtoken
中的token
分析出來;
//**********====test1:_tcstok*************** //
將以空格符為分隔符對str進行分割
cstring
str = _t("192.168.89.125");
tchar
seps = _t(".");
tchar* token = _tcstok( (lptstr)(lpctstr)str, seps );
while( token != null )
//**********====test1:end***************===
執行結果如下:
str=192 token=192
str=192 token=168
str=192 token=89
str=192 token=125
第一次呼叫的時候,函式會忽略出現在
strtoken
串開始的分隔符,返回找到的
token
指標,用空字元(
null character
)替換掉已經查詢到的部分(包括分隔符)並把「新
」串儲存到乙個
static
變數中(系統來完成);
如果下次呼叫時第乙個引數為
null
的話,函式從
static
變數中取出串,根據分隔符得到並返回新
token
,用空字元(
null character
)替換掉已經查詢到的部分(包括分隔符)並重新儲存「新
」串;如此迴圈,直到迴圈條件結束。
參考:
也可以使用char * __cdeclstrtok(char *, const
char *);(包含在標頭檔案中)
參考:
二.afxextractsubstring函式
此外,用afxextractsubstring函式可解析復合串。包含在標頭檔案
<
afxwin.h
>中。
bool
afxextractsubstring(cstring& rstring, lpctstr
lpszfullstring, int
isubstring, tchar
chsep
/* = */ )
引數:
rstring
:用來存放你取出的子串
lpszfullstring
:要拆分的整個字串
isubstring
:你要取的子字串位置,從0開始
chsep
:特定分割符
//*****===test2:afxextractsubstring*****===
cstring
str = _t("192.168.89.125");
cstring
output = "";
for (int
i=0; i
<4; i++)
//**********====test2:end***************===
執行結果如下:
192168 89
125參考:
三.自定義函式字串分割函式
void
split(cstring
source, cstring
divkey, cstringarray& dest)
}引數:
source
:待分割的源串
divkey:
分割符
dest:
分割結果字串陣列
參考:
拆分字串
拆分乙個字串,獲取每一組的key與value。如字串 qq adf f qewr98 eer d9adf t ad34 f qewrqr u adf43 gggg 2344 按照物件導向理念來解決,建立乙個物件 這個是對物件物件,有key和value兩個特性。我們需要把拆分好的資料臨時儲存起來,現在...
拆分字串
本函式可以將 目標字串 以 指定字串 進行拆分,並通過表結構返回結果。如下 create or replace type str split is table of varchar2 4000 create or replace function splitstr p string in varch...
拆分字串
拆分乙個字串,獲取每一組的key與value。如字串 qq adf f qewr98 eer d9adf t ad34 f qewrqr u adf43 gggg 2344 按照物件導向理念來解決,建立乙個物件 這個是對物件物件,有key和value兩個特性。我們需要把拆分好的資料臨時儲存起來,現在...