解决方案 »

  1.   

    const TCHAR szSub[] = _T("]+");
    const long lLenth = _tcslen(szSub);
    while( 1 )
    {
    nIndex = strTemp.Find(szSub,0);   //
    if( nIndex >= 0 )
    {
    strArray.Add( strTemp.Left( nIndex ));
    strTemp = strTemp.Right( strTemp.GetLength() - nIndex - lLenth  );
    }
    else break;
    }
      

  2.   


    赵老师正解:
    1. strtok介绍
    众所周知,strtok可以根据用户所提供的分割符(同时分隔符也可以为复数比如“,。”)
    将一段字符串分割直到遇到"/0".比如,分隔符=“,” 字符串=“Fred,John,Ann”
    通过strtok 就可以把3个字符串 “Fred”     “John”      “Ann”提取出来。
    上面的C代码为
    QUOTE:
    int in=0;
    char buffer[]="Fred,John,Ann"
    char *p[3];
    char *buf = buffer;
    while((p[in]=strtok(buf,","))!=NULL) {
                     in++;
                     buf=NULL; }
    如上代码,第一次执行strtok需要以目标字符串的地址为第一参数(buf=buffer),之后strtok需要以NULL为第一参数 (buf=NULL)。指针列p[],则储存了分割后的结果,p[0]="John",p[1]="John",p[2]="Ann",而buf就变成    Fred/0John/0Ann/0。