strtok的声明:
char *strtok(
char *strToken,
const char *strDelimit
);
wchar_t *wcstok(
wchar_t *strToken,
const wchar_t *strDelimit
);
其中,第一个参数是要分解的字符串,第二个参数是分隔符列表(可以是多个分隔符),以逗号分隔,返回值是从strToken开头开始的一个个被分割的串,当没有被分割的串时则返回NULL。实质上的处理是,strtok在strToken中查找包含在strDelim中的字符并用NULL(’/0′)来替换,直到找遍整个字符串。
Sample:
int main(int argc, char* argv[])
{
char str[] = "<name><firstname>a</firstname><lastname>b</lastname></name>";
char seps[] = "<,>,</";
char *token;
printf( "%s/n/nTokens:/n", str );
/* Establish string and get the first token: */
token = strtok( str, seps );
while( token != NULL )
{
/* While there are tokens in "string" */
printf( " %s/n", token );
/* Get next token: */
token = strtok( NULL, seps );
}
return 0;
}
Result:
<name><firstname>a</firstname><lastname>b</lastname></name>
Tokens:
name
firstname
a
firstname
lastname
b
lastname
name