strtok函数
函数原型: char *strtok(char *str, const char *delim);
返回值:char*
参数:都为char*
头文件:#include<string.h>
第一个参数:需要分隔的字符串
第二个参数:分隔符
将字符串以,为间隔进行查分
将 dld,123,yos拆分为 dld 123 yos分别存入vector中
// 分隔符为,
const char* separator=",";
char data[128];
char* date_split;
vector<char*> every;
date_split = strtok(data,separator);
while (QR_date_split != NULL)
{
cout <<"数据:" << date_split << endl;
every.push_back(date_split);
date_split = strtok(NULL, separator);
}
strtok_s函数
由于strtok()函数是线程不安全的,对其进行了改进,改进后的函数命名为strtok_s()
原型: char *strtok_r(char *str, const char *delim, char **saveptr);
用法与strtok函数相同
第三个参数设为NULL就可以
char* ptr = NULL;
token = strtok_s(string, seps, &ptr);//相较于strtok()函数,strtok_s函数需要用户传入一个指针,用于函数内部判断从哪里开始处理字符串
while (token != NULL) {
printf("%s\n", token);
token = strtok_s(NULL, seps, &ptr);//其他的使用与strtok()函数相同
}
const char* separator=",";
char data[128];
char* date_split;
vector<char*> every;
char* ptr = NULL;
date_split = strtok(data,separator,&ptr);
while (QR_date_split != NULL)
{
cout <<"数据:" << date_split << endl;
every.push_back(date_split);
date_split = strtok(NULL, separator, &ptr);
}