strtok函数
定义 char *strtok(char *s,const char *delim);
strtok()将字符串分割成一个个片段。
s指向要分割的字符串,delim为分割字符串,当strtok()在参数s的字符串中发现到参数delim的分割字符时则会将该字符改为/0字符。
在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回下一个分割后的字符串指针。返回值返回下一个分割后的字符串指针,如果已无从分割则返回NULL。
例子:
CString str; CStdioFile *f=new CStdioFile(strDataPath,CFile::modeRead); if (f==NULL) { str="Can't open the file: <"+strDataPath+">"; MessageBox(str,"Error!",MB_ICONSTOP); return; } const char * split = " ";//分隔符。或者const char * split = ",* ;"; 即表示遇到,或*或 ;进行分割 char * p;//分割后的字符串 char *cstrLine;//要分解的字符串,即将str转换为字符数组,因为strtok只能分隔字符数组 f->ReadString(str); cstrLine=(char*) malloc(str.GetLength()+1); f->SeekToBegin();//指针到开头开始逐行读取并分割字符串 while(f->ReadString(str)) { strcpy(cstrLine,str); p = strtok (cstrLine,split); while(p!=NULL) { str=p; p = strtok(NULL,split); } } f->Close(); delete(f); f=NULL;
参考:http://www.cnblogs.com/dyufei/archive/2012/01/05/2573902.html