如何从CString中分词?

时间:2013-06-21 09:39:01

标签: visual-c++ mfc atl cstring

我有一个 第一种情况: CString stVal = " dsc | resource.c |* ";

第二种情况

CString stVal = " resource.c |MS";

在这两种情况下我只想要文件名。

请注意我使用的是visual studio 6.0。

你知道吗? 在此先感谢。

2 个答案:

答案 0 :(得分:1)

CString strLine =“dsc | resource.c | *”;

    char* lpszToToken = stLine.GetBuffer(stLine.GetLength());
    char* lpszToken = strtok(lpszToToken, "|");
    while(lpszToken != NULL)
    {
        lpszToken = strtok(NULL, "|");
        CString str = lpszToken;
        if(str.Find(".") != -1) {
            stLine = str;
            break;
        }

答案 1 :(得分:0)

最近正在做MFC实验遇到同样的问题,最终通过以下代码进行了解决。

split(CString A) {
    CStringList* returnStringList = new CStringList;
    CString Seperator = L"|";//custom your serperator here
    int position = 0;
    CString token = A.Tokenize(Seperator, position);
    returnStringList->AddTail(token);
    while (!token.IsEmpty()) {
        token = A.Tokenize(Seperator, position);
        returnStringList->AddTail(token);
    }
    return returnStringList;
}