C语言strtok()函数:字符串分割

头文件:#include <string.h>

定义函数:char * strtok(char *s, const char *delim);

函数说明:strtok()用来将字符串分割成一个个片段。参数s 指向欲分割的字符串,参数delim 则为分割字符串,当strtok()在参数s 的字符串中发现到参数delim 的分割字符时则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s 字符串,往后的调用则将参数s 设置成NULL。每次调用成功则返回下一个分割后的字符串指针。

返回值:返回下一个分割后的字符串指针,如果已无从分割则返回NULL。

范例

 1 #include <string.h>
 2 main(){
 3 char s[] = "ab-cd : ef;gh :i-jkl;mnop;qrs-tu: vwx-y;z";
 4 char *delim = "-: ";
 5 char *p;
 6 printf("%s ", strtok(s, delim));
 7 while((p = strtok(NULL, delim)))
 8 printf("%s ", p);
 9 printf("\n");
10 }

执行结果:
ab cd ef;gh i jkl;mnop;qrs tu vwx y;z     //-与:字符已经被\0 字符取代

公司项目中的应用:

 1 int        CDevNetComm::SplitString( char const*  strSource, std::vector<std::string>& tokens, char* szSeps )
 2 {
 3     tokens.clear();
 4     char    szSource[256];
 5     strcpy( szSource, strSource );
 6     char*    token = strtok( (char*)szSource, szSeps );
 7     while( token != NULL )
 8     {
 9         tokens.push_back( token );
10         token = strtok( NULL, szSeps );
11     }
12     return (int)tokens.size();
13 }
时间: 2024-10-06 00:33:35

C语言strtok()函数:字符串分割的相关文章

strtok():“字符串分割”实用函数

最近一直纠结于一个十分简单的问题:如何将一个字符串按标志分割开来?提出这个问题的初衷是自己在处理一个将命令行字符串转换为argc,argv格式的问题. 尝试了很多种方法,最后觉得利用strtok()函数来实现是一个比较好的方法.首先进行strtok()函数的介绍. char *strtok(string, control);  --- Tokenize string with delimiter in control. --- 通过分割符控制将字符串切片化. Purpose: strtok co

字符串分割函数strtok(线程不安全),线程安全函数strtok_r

strtok_r函数---字符串分割函数 函数原型: char *strtok_r(char *str, const char *delim, char **saveptr); 参数: str:被分割的字符串,若str为NULL,则被分割的字符串为*saveptr delim:依据此字符串分割str saveptr:分割后剩余部分的字符串 返回值: 遇到第一个delim时,分割出的字符串,若没有遇到delim,则范围NULL 例程: int main(int argc,char* argv[])

c语言字符串分割函数(strtok())

头文件:#include <string.h> 定义函数:char * strtok(char *s, const char *delim); 函数说明:strtok()用来将字符串分割成一个个片段.参数s 指向欲分割的字符串,参数delim 则为分割字符串,当strtok()在参数s 的字符串中发现到参数delim 的分割字符时则会将该字符改为\0 字符.在第一次调用时,strtok()必需给予参数s 字符串,往后的调用则将参数s 设置成NULL.每次调用成功则返回下一个分割后的字符串指针.

C/C++ 字符串分割: strtok 与 strsep 函数说明

函数原型: char *strtok(char *s, const char *delim); char *strsep(char **s, const char *delim); 功能:strtok和strsep两个函数的功能都是用来分解字符串为一组字符串.s为要分解的字符串,delim为分隔符字符串. 返回值:从s开头开始的一个个子串,当没有分割的子串时返回NULL. 相同点:两者都会改变源字符串,想要避免,可以使用strdupa(由allocate函数实现)或strdup(由malloc函

用strtok函数分割字符串

用strtok函数分割字符串 需要在loadrunner里面获得“15”(下面红色高亮的部分),并做成关联参数. //Body response 内容: <BODY><; PRE>//OK[8,7,5,15,6,5,0,4,0,3,0,3,2,0,0,0,1 用web_reg_save_param取出“8,7,5,15,6,5,0,4,0,3,0,3,2,0,0,0,1”这一段,然后用strtok函数切割出一个个数字,第四个数字就是要找的值 例如: extern char * st

strtok、strtok_s、strtok_r 字符串分割函数

1.strtok函数 函数原型:char * strtok (char *str, const char * delimiters); 参数:str,待分割的字符串(c-string):delimiters,分割符字符串. 使用方法:该函数用来将字符串分割成一个个片段.参数str指向欲分割的字符串,参数delimiters则为分割字符串中包含的所有字符.当strtok()在参数s的字符串中发现参数delimiters中包涵的分割字符时,则会将该字符改为\0 字符.在第一次调用时,strtok()

字符串分割函数StringTokenizer与strtok,strsep的比较

字符串分割在我们在开发过程中经常遇到的问题.根据一个标记串,将输入的字符串分割成多个子串.实际编码当中,我们发现使用不同的函数得到的结果也会有区别. 为了方便比较,我们定义一个统一的输入输出比较方式: vector<string> parsetoken(const string &str, const string& delim); 输入源字符串str,分割标记串为delim,分割的子串保存到vector<string>中. 我们分别使用内部的StringToken

字符串分割函数 STRTOK &amp; STRTOK_R (转)

1.一个应用实例 网络上一个比较经典的例子是将字符串切分,存入结构体中.如,现有结构体 typedef struct person{     char name[25];     char sex[10];     char age[4]; }Person; 需从字符串 char buffer[INFO_MAX_SZ]="Fred male 25,John male 62,Anna female 16"; 中提取出人名.性别以及年龄. 一种可行的思路是设置两层循环.外循环,先以 ',’

(转)C++常见问题: 字符串分割函数 split

http://www.cnblogs.com/dfcao/p/cpp-FAQ-split.html C++标准库里面没有字符分割函数split ,这可太不方便了,我已经遇到>3次如何对字符串快速分割这个问题了.列几个常用方法以备不时之需. 方法一: 利用STL自己实现split 函数(常用,简单,直观) 原型: vector<string> split(const string &s, const string &seperator); 输入一个字符串,一个分隔符字符串(