我现在是这样的,比如:
CString strSource = "20060806|Success|中文|";//别人发送来的数据包
char* charRecv = strSource.GetBuffer(0);//转成char
char date[9];for(int z = 0; z < 256; z++) 
{
if (charRecv[z] == '|') break;
else date[x] = charRecv[z];
x++;
}
date[x+1] = '\0';
........继续这样一个个获取
但这样麻烦
希望能有简单的方法,谢谢指教

解决方案 »

  1.   

    一个关键函数strtok ,具体的用法让楼下提供吧.......
      

  2.   

    CString strSource = "20060806|Success|中文|";//别人发送来的数据包
    char* charRecv = strSource.GetBuffer(0);//转成char
    char date[9]={0};strcpy(date,strtok(charRecv,"|"));
      

  3.   

    那怎么提取后面的"Success|中文|"这两项……
      

  4.   

    我知道了……CString strSource = "20060806|Success|中文|";//别人发送来的数据包
    char  pBuffer[128];
    CString strdate, strStatus, strLanguage;sprintf(pBuffer, strSource);  
    char*  token;  
    token  =  strtok(pBuffer, "|");    
    strdate = token;
    AfxMessageBox(strdate);
    token  =  strtok(NULL, "|");strStatus = token;
    AfxMessageBox(strStatus);
    token  =  strtok(NULL, "|");strLanguage = token;
    AfxMessageBox(strLanguage);
    token  =  strtok(NULL, "|");