Chinaunix首页 | 论坛 | 博客
  • 博客访问: 257795
  • 博文数量: 49
  • 博客积分: 1231
  • 博客等级: 少尉
  • 技术积分: 967
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-02 00:04
个人简介

-->软硬件结合的系统级开发工程师,带过团队,爱好心理学,哲学,艺术...偶像:达芬奇

文章存档

2014年(2)

2013年(4)

2012年(15)

2011年(28)

分类: C/C++

2012-03-22 15:27:56

 

C语言分割字符串函数strtok!

    在编程过程中,有时需要对字符串进行分割.而有效使用这些字符串分隔函数将会给我们带来很多的便利.

    下面我将在msdn中学到的strtok函数做如下翻译.

strtok :

   在一个字符串查找下一个符号

     char *strtok( char *strtoken, const char *strdelimit );

返回值:

  返回指向在strtoken字符串找到的下一个符号的指针,当在字符串找不到符号时,将返回null.每

次调用都通过用null字符替代在strtoken字符串遇到的分隔符来修改strtoken字符串.

参数:
    strtoken:包含符号的字符串

  strdelimit:分隔符集合

  注:第一次调用strtok函数时,这个函数将忽略间距分隔符并返回指向在strtoken字符串找到的第一个符

号的指针,该符号后以null字符结尾.通过调用一系列的strtok函数,更多的符号将从strtoken字符串中分

离出来.每次调用strtok函数时,都将通过在找到的符号后插入一个null字符来修改strtoken字符串.为了

读取strtoken中的下一个符号,调用strtok函数时strtoken参数为null,这会引发strtok函数在已修改过

的strtoken字符串查找下一个符号.

example(摘自msdn)


点击(此处)折叠或打开

  1. /* strtok.c: in this program, a loop uses strtok
  2.  * to print all the tokens (separated by commas
  3.  * or blanks) in the string named "string".
  4.  */

  5. #include <string.h>
  6. #include <stdio.h>

  7. char string[] = "a string\tof ,,tokens\nand some more tokens";
  8. char seps[] = " ,\t\n";
  9. char *token;

  10. void main( void )
  11. {
  12.    printf( "%s\n\ntokens:\n", string );
  13.    /* establish string and get the first token: */
  14.    token = strtok( string, seps );
  15.    while( token != NULL )
  16.    {
  17.       /* while there are tokens in "string" */
  18.       printf( " %s\n", token );
  19.       /* get next token: */
  20.       token = strtok( NULL, seps );
  21.    }
  22. }

输出结果:
 
a string   of ,,tokens
and some  more tokens

tokens:
 a
 string
 of
 tokens
 and
 some
 more
 tokens

阅读(1250) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

-小Y头-2012-03-22 22:48:24

恩,好多字符串处理的好函数