C++strtok()实现功能分析

C++编程语言的应用方式非常灵活,能够支持各种程序设计风格。我们今天在这里为大家介绍的是利用C++ strtok()来实现Split函数的功能的相关方法,希望大家能从中体验到这一语言功能的强大。#t#

成都做网站、网站制作服务团队是一支充满着热情的团队,执着、敏锐、追求更好,是创新互联的标准与要求,同时竭诚为客户提供服务是我们的理念。创新互联公司把每个网站当做一个产品来开发,精雕细琢,追求一名工匠心中的细致,我们更用心!

相关函数:index, memchr, rindex, strpbrk, strsep, strspn, strstr

表头文件:#include

C/C++中的Split函数是C++ strtok()其函数原型如下:

 
 
 
  1. char * strtok (char * str, const char * delimiters); 

函数说明

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

返回值

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

示例-1

 
 
 
  1. /* strtok example */ 
  2. #include  
  3. #include  
  4. int main () 
  5. char str[] ="a,b,c,d*e"; 
  6. const char * split = ","; 
  7. char * p; 
  8. p = strtok (str,split); 
  9. while(p!=NULL) { 
  10. printf ("%s\n",p); 
  11. p = strtok(NULL,split); 
  12. getchar(); 
  13. return 0; 
  14. }

本例中,实现对字符串'a,b,c,d*e"用逗号(,)来作界定符对字符串进行分割。 输出结果将如下所示:

 
 
 
  1. d*e

因为delimiters支持多个分割符, 我们将本示例中的语句行

 
 
 
  1. const char * split = ","; 

改成

 
 
 
  1. const char * split = ",*"; //用逗号(,)和星号(*)对字符串进行分割

这样输出结果将如下所示:

 
 
 
  1. e

例子2:

 
 
 
  1. #include  
  2. #include  
  3. #include  
  4. char string[] = "1:ip:ipport:user "; 
  5. char seps[] = ": "; 
  6. char *token; 
  7. int main( void ) 
  8. printf( "Tokens:\n " ); 
  9. // Establish string and get the first token: 
  10. token = strtok( string, seps ); // C4996 
  11. // Note: strtok is deprecated; consider using strtok_s instead 
  12. while( token != NULL ) 
  13. // While there are tokens in "string " 
  14. printf( "%s\n ", token ); 
  15. // Get next token: 
  16. token = strtok( NULL, seps ); // C4996 
  17. system( "pause "); 
  18. return 0; 
  19. }

以上就是对C++ strtok()的相关介绍。

本文名称:C++strtok()实现功能分析
路径分享:http://www.shufengxianlan.com/qtweb/news11/485761.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联