拆分字符串

strtok函数

函数原型: char *strtok(char *str, const char *delim);
返回值:char*
参数:都为char*
头文件:#include
第一个参数:需要分隔的字符串
第二个参数:分隔符

将字符串以,为间隔进行查分
将 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);
}

你可能感兴趣的:(C++,算法,c++,开发语言,字符串拆分)