CString CarInfo=to;
CString buf[20]={"0"};
int loc1[20]={0};
int loc2[20]={0};                  loc1[0] = CarInfo.Find("A:");
loc2[0]= CarInfo.Find(";",loc1[0]);
buf[0]=CarInfo.Mid(loc1[0] +2,loc2[0]-2-loc1[0]-0);



loc1[1] = CarInfo.Find("B:"); 
loc2[1]= CarInfo.Find(";",loc1[1]);
buf[1]=CarInfo.Mid(loc1[1] +2,loc2[1]-1-loc1[1] -1);



loc1[2] = CarInfo.Find("C:");
loc2[2]= CarInfo.Find(";",loc1[2]);
buf[2]=CarInfo.Mid(loc1[2] +2,loc2[2]-1-loc1[2] -1);

解决方案 »

  1.   

    CString strTargets[] = {_T("A:"), _T("B:"), _T("C:")};
    CString strT2 = _T(";");
    for (int i = 0; i < sizeof(strTargets)/sizeof(strTargets[0]); i++)
    {
      loc1[i] = CarInfo.Find(strTargets[i]);
      loc2[i] = CarInfo.Find(strT2, loc1[i]);
      buf[i] = CarInfo.Mid(loc1[i] + 2, loc2[i] - 2 - loc1[i] - i);
    }
      

  2.   


    CString strT2 = _T(";");
    for (int i = 0; i < sizeof(strTargets)/sizeof(strTargets[0]); i++)
    {
      loc1[i] = CarInfo.Find(strTargets[i]);
      loc2[i] = CarInfo.Find(strT2, loc1[i]);
      buf[i] = CarInfo.Mid(loc1[i] + 2, loc2[i] - 2 - loc1[i] - 0);
      MessageBox(buf[i]);
    }
      

  3.   

    谢谢三楼的 
    如果把A:B:C:这些字符转换成ASCⅡ码 放在for循环让它自动增加就好 
      当i=0 时 loc1[i]=CarInfo.Find(65+i":") ;//65+i=A
      当i=1 时 loc2[i]=CarInfo.Find(65+i":");//65+i=B对吧
    上面的CarInfo.Find(65+i":")语法是不能通过的,应该怎么转换才能通过阿