16
A
回答
28
CString str = _T("one+two+three+four");
int nTokenPos = 0;
CString strToken = str.Tokenize(_T("+"), nTokenPos);
while (!strToken.IsEmpty())
{
// do something with strToken
// ....
strToken = str.Tokenize(_T("+"), nTokenPos);
}
7
在VC6,其中CString的沒有一個記號化方法,可以推遲到strtok功能和它的朋友。
#include <tchar.h>
// ...
CString cstr = _T("one+two+three+four");
TCHAR * str = (LPCTSTR)cstr;
TCHAR * pch = _tcstok (str,_T("+"));
while (pch != NULL)
{
// do something with token in pch
//
pch = _tcstok (NULL, _T("+"));
}
// ...
18
CString sInput="one+two+three";
CString sToken=_T("");
int i = 0; // substring index to extract
while (AfxExtractSubString(sToken, sInput, i,'+'))
{
//..
//work with sToken
//..
i++;
}
+2
這是一個蹩腳的面向對象問題和糟糕的API--遍佈各處的功能:)好的發現。 – sje397 2010-06-30 09:34:13
+6
你可以回答你自己的問題。它在FAQ中。 – sje397 2010-07-14 15:38:26
+1
我會將逗號分隔符更改爲加號,否則該示例將不起作用。 – TechNyquist 2014-11-25 07:55:19
7
int i = 0;
CStringArray saItems;
for(CString sItem = sFrom.Tokenize(" ",i); i >= 0; sItem = sFrom.Tokenize(" ",i))
{
saItems.Add(sItem);
}
相關問題
- 1. 與MFC的CString的
- 2. mfc複製CString的某些部分
- 3. javascript拆分功能
- 4. 拆分已拆分窗格(MFC)
- 5. 拆分文本與拆分功能
- 6. jmeter中的拆分功能
- 7. mysql中的拆分功能
- 8. vb.net中的拆分功能
- 9. xts中的拆分功能
- 10. 如何交換MFC CString?
- 11. GoogleMock - Matchers和MFC \ ATL CString
- 12. 拆分功能嫩枝
- 13. 拆分功能差異
- 14. 使用拆分功能
- 15. 拆分功能在UNIX
- 16. 字符串拆分功能
- 17. MFC重做功能
- 18. 拆分功能不能正常工作
- 19. 的Python:拆分的功能和參數
- 20. LPBYTE數據轉換爲MFC中的CString
- 21. 將我的代碼拆分爲功能
- 22. 分拆的主成一個功能
- 23. 循環Python的拆分功能
- 24. 拆分遠程EJB功能的對象
- 25. T-SQL中的拆分功能
- 26. 拆分並提取相同的功能
- 27. 陣列上的拆分功能
- 28. 如何限制Perl的拆分功能?
- 29. 正確的方法來拆分功能
- 30. SQL Server 2005中的拆分功能
嗨,Tokenize在VC6 MFC中不受支持,但在ATL中支持 – Dharma 2010-06-30 09:07:04
您應該在問題中添加該要求。 – sje397 2010-06-30 09:18:26
[CStringT :: Tokenize()](http://msdn.microsoft.com/en-us/library/k4ftfkd2.aspx)的文檔說該函數跳過了前導分隔符,所以如果你真的想分割一個字符串並且不會忽略空的子字符串,那麼我會說你不能使用'Tokenize()'。例如,「+一+二+三+四」不會產生5個子串的預期結果。 – herzbube 2012-02-24 11:11:43