2
我正在使用CString::Tokenize
方法來使用分隔符來標記字符串,但我注意到一些奇怪的事情,我在循環中調用了我的字符串上的該方法,因爲我想檢索字符串內的所有標記,這裏是我的代碼:CString Tokenization問題
CString strToken;
for(int nTokenPos = 0; nTokenPos < dialog->myValue.GetLength(); nTokenPos++)
{
//TRACE("The Size of the string is %d\n", dialog->myValue.GetLength());
TRACE("Iteration No %d\n",nTokenPos);
strToken = dialog->myValue.Tokenize(_T("X"), nTokenPos);
strToken+="\n";
OutputDebugString(strToken);
}
說明:dialog->myValue
是我想要標記的字符串。當我測試的「99X1596」的代碼(例如)輸出:
Iteration No 0
99
Iteration No 4
596
另一個例子:「4568X6547」 輸出:
Iteration No 0
4568
Iteration No 6
547
我不知道爲什麼它忽略了第一分隔符「X」後的字符也會跳過一個迭代!
我增加了,因爲我要檢索的字符串中的所有令牌 –
你不需要它,'Tokenize'將遞增它。例如查看更新的答案。 – Rost
但在分隔符之後僅輸出令牌! –