strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串中包含的所有字符。当strtok()在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针,如果查找不到delim中的字符时,返回当前strtok的字符串的指针。
示例:
#include "stdafx.h"
#include <iostream>
#include <string>
int main()
{
std::string scrStr = "This is a test";
char *buff = (char *)malloc(scrStr.size() + 1);
memcpy(buff, scrStr.c_str(), scrStr.size() + 1);
char *splitStr = strtok(buff, " ");
while (splitStr)
{
std::cout << splitStr << std::endl;
splitStr = strtok(nullptr," ");
}
free(buff);
getchar();
return 0;
}
打印结果: