- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言的字符串分解——strtok函数和strsep函数
c语言的字符串分解——strtok函数和strsep函数
今天才知道原来C语言也有类似java的split的函数,按特定字符串对字符串进行分解: strtok的解释和示例: strtok Syntax: view plain span style=font-size:16px;#include cstring char *strtok( char *str1, const char *str2 );/span The strtok() function returns a pointer to the next token in str1, where str2 contains the delimiters that determine the token. strtok() returns NULL if no token is found. In order to convert a string to tokens, the first call to strtok() should have str1 point to the string to be tokenized. All calls after this should have str1 be NULL. For example: view plain span style=font-size:16px;/spanpre name=code class=cpp char str[] = now # is the time for all # good men to come to the # aid of their country; char delims[] = #; char *result = NULL; result = strtok( str, delims ); while( result != NULL ){ printf( result is \%s\\n, result ); result = strtok( NULL, delims ); } The above code will display the following output: view plain span style=font-size:16px;result is now result is is the time for all result is good men to come to the result is aid of their country /span 在s中找出以ct中的字符为分隔的字符串,即是源串中除去了含有分隔串中的所有字符后余下的一段段的字符串,每调用一次找到一串,找不到则返回空串。第一次调用必须传给它有效的字符串,第二次传NULL就可以了,每次调用返回找到的子串的时候都会把源串中该子串的尾部字符(原来是搜索串中的某一字符)修改成/0字符返回值为每次调用得到的字串。 但是百度百科里面又有提到说“最新的Linux内核2.6.29,说明了这个函数已经不再使用,由速度更快的strsep()代替”。所以又去查了下strsep函数: 原型:char *strsep(char **stringp, const char *delim); 功能:分解字符串为一组字符串。从stringp指向的位置起向后扫描,遇到delim指向位置的字符后,将此字符替换为NULL,返回stringp指向的地址。 但是strsep函数,在 Windows是没有支持的,我是在Linux环境,所以ok~ 给个例子: view plain char str2[] = 2011/11/28; char *buf; char *token; buf = str2; while((token = strsep(buf, /)) != NULL){ printf(%s\n, token); } 输出: view plain 2011
文档评论(0)