浅谈C语言的字符串分割

所属分类: 软件编程 / C 语言 阅读数: 33
收藏 0 赞 0 分享

说起来很有意思,自认为对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 */

The above code will display the following output: 

result is "now " 

result is " is the time for all " 

result is " good men to come to the " 

result is " aid of their country" 

这个函数跟编译器中的词法分析很像,在以后的文本处理中,会解决很多问题。看来我有必要系统的学习下C的库函数,而不仅仅是死扎在语法和一些算法技巧上面。这样在平常的工作中才能事半功倍。

使用这个函数,形如下面的配置文件就非常容易解析:

id1 value1 value2 value3

id2 value1 value2 value3

...

使用这个函数,分割字符串就更加方便了,例如下面待分割的字符串:

12|2345|asld|alsfalskd

只要读取待处理的数据,然后调用四次strtok就能够解析出每行的值,以前我一般不是自己解析就是用sscanf,但是strtok更加合适,也更加啊灵活!

以上这篇浅谈C语言的字符串分割就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

C++语言数据结构 串的基本操作实例代码

这篇文章主要介绍了C语言数据结构 串的基本操作实例代码的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

C++中的异常处理机制详解

本文给大家分享的是C++中的异常处理机制。对如何处理异常、基本异常语法、异常保护代码等进行了探讨,推荐给大家。
收藏 0 赞 0 分享

C++ 二叉搜索树(BST)的实现方法

这篇文章主要介绍了C++ 二叉搜索树(BST)的实现方法,非常不错,具有参考借鉴价值,需要的的朋友参考下
收藏 0 赞 0 分享

C++调用Python基础功能实例详解

c++调用Python首先安装Python,本文以win7为例,给大家详细介绍C++调用Python基础功能,需要的朋友参考下吧
收藏 0 赞 0 分享

C++ 中pragma once 与 #ifndef _XXX_H_ #define _XXX_H_的区别

这篇文章主要介绍了C++ 中pragma once 与 #ifndef _XXX_H_ #define _XXX_H_的区别的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

visual studio 2013中配置opencv图文教程 Opencv2.4.9安装配置教程

这篇文章主要为大家详细介绍了Opencv2.4.9安装教程,以及在visualstudio 2013中opencv的配置步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

VS2013安装配置和使用Boost库教程

这篇文章主要为大家详细介绍了VS2013安装配置和使用Boost库的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

visual studio 2015下boost库配置教程

这篇文章主要为大家详细介绍了visual studio 2015下boost库的配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

VS2010 boost标准库开发环境安装教程

这篇文章主要为大家详细介绍了VS2010 boost标准库开发环境的安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Microsoft Visual C++ 6.0开发环境搭建教程

这篇文章主要为大家详细介绍了Microsoft Visual C++ 6.0开发环境搭建教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多