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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 任正非的管理思想核心_任正非管理思想心得

    任正非的管理思想核心_任正非管理思想心得励精图治,再创辉煌——任正非在财经采购系统干部就职仪式上的讲话希望你们在新的岗位上搞好团结,脚踏实地,一丝不苟地,诚实地,不哗众取宠地去做好自己管辖的事情。要按公司的产品定位与市场定位,跟进自己的工作。一、财务系统要逐步由现行核算型会计模式扩展为管理型。必须加强预测、决策、分析与控制工作。企业管理的核心就是提高质量,降低成本。抓财务管理,就是要抓资金流通的全过程及全部内容,以及不断…

    2025年6月8日
    3
  • 渗透测试工具下载

    渗透测试工具下载好多工具资源

    2022年8月12日
    6
  • pycharm写脚本_pycharm运行python脚本

    pycharm写脚本_pycharm运行python脚本打开pycharm,file->setting在右侧模板框图中填写模板##!/usr/bin/python3#-*-coding:utf-8-*-#@Time:${DATE}${TIME}#@Author:${USER}#@Email:wayne_lau@aliyun.com#@File:${NAME}.py#@Project:${PROJECT_NAME}其他可用的预定义文件模板变量为:${PROJECT_NAME}-.

    2025年6月9日
    6
  • springbean生命周期通俗一点_java servlet生命周期

    springbean生命周期通俗一点_java servlet生命周期一、springBean的生命周期1、启动spring容器,也就是创建beanFactory(bean工厂),一般用的是beanFactory的子类applicationcontext,applicationcontext比一般的beanFactory要多很多功能,比如aop、事件等。通过applicationcontext加载配置文件,或者利用注解的方式扫描将bean的配置信息加载到spring容器里面。2、加载之后,spring容器会将这些

    2022年9月19日
    2
  • centos7安装vsftp配置虚拟用户「建议收藏」

    centos7安装vsftp配置虚拟用户「建议收藏」安装前的准备关闭防火墙或者开端口权限。一般是firewalld或者iptables。systemctlstopfirewalldsystemctldisablefirewalld关闭sellinux立即关闭setenforce0重启也关闭vi/etc/selinux/config修改SELINUX=disabled查看是否关闭get

    2022年9月25日
    3
  • SM4 加密算法_des加密算法流程

    SM4 加密算法_des加密算法流程SM4加密算法密码算法中常用的一些数据单位:位/比特/bit:指一个二进制位。字节/byte:1字节=8位[公式]字/word:1字=4字节=32位[公式]SM4是一种分组密码算法,其分组长度为128位(即16字节,4字),密钥长度也为128位(即16字节,4字)。其加解密过程采用了32轮迭代机制(与DES、AES类似),每一轮需要一个轮密钥(与DES、AES类似)。加密过程分为两步,由32次轮迭代和1次反序变换组成。SM4的解密过程与加密过程完全相同,也包括32轮迭代和一次反序变换。只

    2022年10月6日
    1

发表回复

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

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