函数原型:
BOOL AfxExtractSubString(CString& rString, LPCTSTR lpszFullString, int iSubString, TCHAR chSep = '\n')
参数说明:
rString 保存输出的子字符串
lpszFullString 待分割的字符串
iSubString 提取的子字符串的序号,从0开始。假如你想提取第3段,该参数就输入2
chSep 用于分割的字符,默认的是'\n'
返回值:分割成功,就返回TRUE;iSubString越界,则返回FALSE
举例说明:
- CString szGet;
- CString szText = "var hq_str_sh600736=\"苏州高新,5.33,5.32,5.70,5.85,5.32,5.71,5.72,56939555,323766177,92561,5.71,121300,5.70,57200,5.69,34600,5.68,18600,5.67,130327,5.72,177801,5.73,40999,5.74,194908,5.75,69600,5.76,2011-08-12,15:03:07\";";
- AfxExtractSubString(szGet, szText, 1, ','); //取回 5.33
- AfxExtractSubString(szGet, szText, 2, ','); //取回 5.32
- AfxExtractSubString(szGet, szText, 3, ','); //取回 5.70
- //想要取回苏州高新
- AfxExtractSubString(szGet, szText, 0, ','); //先取回var hq_str_sh600736="苏州高新
- AfxExtractSubString(szGet, szGet, 1, '\"'); //取回 苏州高新
注意:用于分割的只能是字符,不能是字符串。
多个字符使用_tcstok函数,另外可以使用find函数自己写.
今天无意在网上看到了一个比较不常用的MFC分割 字符串的函数AfxExtractSubString(CString& rString, LPCTSTR lpszFullString,int iSubString, TCHAR chSep = '/n'),下面大概说一下它的用法:
参数说明:
rString 得到的字符串;lpszFullString 待分割的字符串;iSubString 要得到第几个字符串;chSep 个子串之间的分隔符
例如,有一个字符串strFullString = "abcd-hgdy-weiuiwu-sdlsk";则有:
CString strTmp;
AfxExtractSubString( strTmp, (LPCTSTR)strFullString, 0, '-');//strTmp的内容为abcd
AfxExtractSubString( strTmp, (LPCTSTR)strFullString, 2, '-');//strTmp的内容为weiuiwu
感觉蛮好用的。