有一段字符串,如 “sd,qwq,ewrew”我们要依逗号为分割符,把这串字符串分别取出来sd qwq werew。 我们可以使用strtok函数。
函数原型:char *strtok(char s[], const char *delim);
strtok函数说明:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。
使用说明:strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串中包含的所有字符。当strtok()在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针。
返回值:从s开头开始的一个个被分割的串。当查找不到delim中的字符时,返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。
实例:
#include <stdio.h>
#include <vector>
using namespace std;
char str[] = "filename,filesize,ctime,latime,filepath,lwtime,md5,sha1";
char flag[] = " ,";
char *tbuf;
int main( void )
{
printf( "tbuf:\n" );
tbuf= strtok(str, flag);
while( tbuf != NULL )
{
printf( " %s\n", tbuf);
tbuf = strtok( NULL, flag);
}
}