C语言的字符串分割

说起来很有意思,自认为对C语言理解得还是比较深刻的。但居然到今天才知道有个strtok函数,试用了一下突然感慨以前做了多少重复劳动。每次需要解析配置文件,每次需要分割字符串,居然都是自己去分割字符串,

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

说起来很有意思,自认为对C语言理解得还是比较深刻的。但居然到今天才知道有个strtok函数,试用了一下突然感慨以前做了多少重复劳动。每次需要解析配置文件,每次需要分割字符串,居然都是自己去分割字符串,既累人又容易出错。感概技术学得不够全面啊!这里引用一段strtok用法:

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:

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 );  
   }              
/* 何问起 hovertree.com */
  1. The above code will display the following output:  
  2.   
  3.    result is “now ”  
  4.    result is ” is the time for all ”  
  5.    result is ” good men to come to the ”  
  6.    result is ” aid of their country” 
 这个函数跟编译器中的词法分析很像,在以后的文本处理中,会解决很多问题。看来我有必要系统的学习下C的库函数,而不仅仅是死扎在语法和一些算法技巧上面。这样在平常的工作中才能事半功倍。
使用这个函数,形如下面的配置文件就非常容易解析:
id1 value1 value2 value3
id2 value1 value2 value3
...
    使用这个函数,分割字符串就更加方便了,例如下面待分割的字符串:
12|2345|asld|alsfalskd
        只要读取待处理的数据,然后调用四次strtok就能够解析出每行的值,以前我一般不是自己解析就是用sscanf,但是strtok更加合适,也更加啊灵活!

推荐:
http://www.cnblogs.com/roucheng/p/3454292.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120507.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • windows下Elasticsearch安装、ElasticSearch-head插件安装使用[通俗易懂]

    windows下Elasticsearch安装、ElasticSearch-head插件安装使用[通俗易懂]Elasticsearch的介绍Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有HTTPWeb接口和无模式JSON文档。Elasticsearch具有以下特点:分布式,无需人工搭建集群(solr就需要人为配置,使用Zookeeper作为注册中心)Restful风格,一切API都遵循Rest原则,容易上手近实时搜索,数据更新在Elasticsearch中几乎是完全同步的。开源的全文检索技术(Solr、Elasticsearch等)

    2022年5月18日
    93
  • pycharm加断点_破地方转CAD

    pycharm加断点_破地方转CAD转自:https://blog.csdn.net/u013088062/article/details/50216015转载于:https://www.cnblogs.com/everfight/p/pycharm_debug.html

    2022年8月25日
    3
  • 网页中使用opencv 人脸识别[通俗易懂]

    网页中使用opencv 人脸识别[通俗易懂]一.准备1.编译出opencv.js文件opencv.js没有现成的,需要编译,根据官网下载编译程序编译https://blog.csdn.net/zbl744949461/article/details/100150138如果不想自己编译,或者编译完的文件,在浏览器中有问题,可以直接从官网网站上自己下下来(F12,把js文件保存在本地)https:/…

    2022年5月26日
    34
  • BaseDao[通俗易懂]

    BaseDao[通俗易懂]BaseDao

    2022年4月24日
    110
  • (ADRC)自抗扰控制器学习总结(一)

    (ADRC)自抗扰控制器学习总结(一)ADRC自抗扰控制基本思想要点:1.标准型与总扰动,扩张状态与扰动整体辨识,微分信号生成与安排过渡过程以及扰动的消减与控制量产生。ADRC主要构成:1>跟踪微分器(TD) 解决由不连续或带随机噪声的量测信号,合理提取连续信号(跟踪给定)及微分信号的问题。 根据微分输出与最速综合函数,可以安排闭环系统的过渡过程。以单位阶跃信号为例,经过跟踪微分器的过渡,产生的输出效果

    2022年5月19日
    36
  • String,StringBuffer与StringBuilder的区别

    String,StringBuffer与StringBuilder的区别一、JavaString类——String字符串常量字符串广泛应用 在Java编程中,在Java中字符串属于对象,Java提供了 String类来创建和操作字符串。需要注意的是,String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且大量浪费有限的内存空间。我们来看一下这张对String操作时内存变化的图:我们可…

    2022年6月28日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号