我对编码很新,所以我可能会有点慢。
所以我有一个用户输入的等式的 CString ,我想分开数字和运算符,以便它们在 CStringArray 中有自己的索引。
例如,这就是我的意思:
我有一个字符串
CString str = "123 + 32 / 2"
我希望字符串成为这个......
CStringArray arr = ['123', '+' , '32' , '/' , '2']
我将如何做到这一点?
我正在考虑使用for循环,找到有空格的地方,然后抓住'那里的数字或操作员,但我无法完全理解我是如何做到的。答案 0 :(得分:3)
您可以使用CString的Tokenize()方法来拆分字符串。查看msdn文档中的示例:https://msdn.microsoft.com/en-us/library/k4ftfkd2.aspx 以下是您的问题的代码,它与示例中的数据相同。您必须将resToken添加到CStringArray才能填充它。
CStringArray arr;
CString m_StoreEx = _T("123 + 32 / 2");
int curPos = 0;
CString resToken= m_StoreEx.Tokenize(_T(" "),curPos);
while (resToken != _T(""))
{
_tprintf_s(_T("Resulting token: %s\n"), resToken);
arr.Add(resToken);
resToken = m_StoreEx.Tokenize(_T(" "), curPos);
};
答案 1 :(得分:0)
CString s = _T("123 + 32 / 2");
CStringArray sa;
int i = 0, j = 0;
while (-1 != (i = s.Find(' ', i))) {
if (i != j)
sa.Add(s.Mid(j, i - j));
j = ++i;
}
sa.Add(s.Mid(j)); // Last one
您可以将其放入辅助功能中以供进一步使用。