代码之家  ›  专栏  ›  技术社区  ›  Dharma

MFC Cstring类的拆分功能

  •  19
  • Dharma  · 技术社区  · 16 年前

    如何分割 CString vc++中delimeter对象?

    例如,我有一个 string 价值

    “一+二+三+四”

    变成一个 CString公司

    4 回复  |  直到 13 年前
        1
  •  35
  •   Community Mohan Dere    9 年前

    类似 this question

    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);
    }
    
        2
  •  22
  •   Andrew Truckle    5 年前
    CString sInput="one+two+three";
    CString sToken=_T("");
    int i = 0; // substring index to extract
    while (AfxExtractSubString(sToken, sInput, i,'+'))
    {   
       //.. 
       //work with sToken
       //..
       i++;
    }
    

    AfxExtractSubString on MSDN .

        3
  •  11
  •   Yuck    14 年前
    int i = 0;
    CStringArray saItems;
    for(CString sItem = sFrom.Tokenize(" ",i); i >= 0; sItem = sFrom.Tokenize(" ",i))
    {
        saItems.Add( sItem );
    }
    
        4
  •  7
  •   Andrew Truckle    5 年前

    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("+"));
    }
    
    // ...
    
    推荐文章