C语言分割字符串函数strtok - witxjp - 博客园

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

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

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

char *strtok( char *strToken, const char *strDelimit );

返回值:返回指向在strToken字符串找到的下一个符号的指针,当在字符串找不到符号时,将返回NULL.每

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

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

strDelimit:分隔符集合

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

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

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

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

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

Example(摘自MSDN)

/* STRTOK.C: In this program, a loop uses strtok
 * to print all the tokens (separated by commas
 * or blanks) in the string named "string".
 */

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

char string[] = "A string\tof ,,tokens\nand some  more tokens";
char seps[]   = " ,\t\n";
char *token;

void main( void )
{
   printf( "%s\n\nTokens:\n", string );
   /* Establish string and get the first token: */
   token = strtok( string, seps );
   while( token != NULL )
   {
      /* While there are tokens in "string" */
      printf( " %s\n", token );
      /* Get next token: */
      token = strtok( NULL, seps );
   }
}


Output

A string   of ,,tokens
and some  more tokens

Tokens:
 A
 string
 of
 tokens
 and
 some
 more
 tokens

 

本文来自CSDN博客,转载请标明出处:

郑重声明:资讯 【C语言分割字符串函数strtok - witxjp - 博客园】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——