最近手里的活用到分割字符串,自己尝试写了一个,在网上找到几个,留着以后备用。
char* steps = ";";
char* token;
char strUsbInfo[512] = {0};
memcpy(strUsbInfo,"1E;2F;3G;",strlen("1E;2F;3G;"));
token = strtok(strUsbInfo,steps);
while (token != NULL)
{
AfxMessageBox(token);
token = strtok(NULL,steps);
}
这段代码是在网上找的,出处忘记了,请原作者见谅。
int splitString(CString str, char split, CStringArray& strArray)
{
strArray.RemoveAll();
CString strTemp = str;
int nIndex = 0;
while(1)
{
nIndex = strTemp.Find( split );
if( nIndex >= 0 )
{
strArray.Add(strTemp.Left(nIndex));
strTemp = strTemp.Right( strTemp.GetLength()-nIndex-1);
}
else break;
}
strArray.Add(strTemp);
return strArray.GetSize();
}
CStringArray str;
int nSize = splitString("PhysicalDrive1-E;PhysicalDrive2-F;PhysicalDrive3-G;", ';', str);
for(int i = 0;i<nSize;i++)
{
if (str.GetAt(i).GetLength()!=0)
{
AfxMessageBox(str.GetAt(i));
}
}