Vs中分割字符串的AfxExtractSubString函数

BOOL ParseVersion(LPCTSTR pszVersion, int& nHMVer, int& nLMVer, int& nHLVer, int& nLLVer)
{
#define CHAR_NULL    '\0'

   
    CString strHMVer, strLMVer, strHLVer, strLLVer;
    AfxExtractSubString(strHMVer, pszVersion, 0, '_');
    AfxExtractSubString(strLMVer, pszVersion, 1, '_');
    AfxExtractSubString(strHLVer, pszVersion, 2, '_');
    AfxExtractSubString(strLLVer, pszVersion, 3, '_');
    if(strHMVer.IsEmpty())
    {
        return FALSE;
    }

    return TRUE;
}

在上面的这个函数中,int& nHMVer是传入的参数,&符号表示传进来的是一个地址(这样的参数在函数中修改它的值,函数外面的值也会跟着修改)

AfxExtractSubString的参数共有四部分: AfxExtractSubString(strHMVer, pszVersion, num, '.');

1.      strHMVer    分割后输出的字符串

2.      pszVersion   要分割的字符串

3.      num             提取的子字符串的序号,从0开始。假如你想提取第3段,该参数就输入2

4.       "_"               用于分割的字符,默认的是'\n'

 nHMVer = (int)strtol((LPCTSTR)strHMVer, &endptr, 10);

表示将一个String类型的转为十进制的Long型,如果转失败的话endptr就不等于空(endptr="不能转的值"),

从endptr可以看出是哪一段转换失败。

 


版权声明:本文为qq_41292545原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。