strtok使用小记

el/2024/5/21 22:04:52

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

函数用来从字符串中抽取想要的字段,首先看一个MSDN的例子:

 

//输出字符串中以指定分隔符隔开的字段

#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 );
    //    printf("after modify: %s/n",string);
        /* 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

如果去掉上面
行 //    printf("after modify: %s/n",string);前面的注释符。就会输出如下:
A string of ,,tokens
and some more tokens

Tokens:
A
after modify: A
string
after modify: A
of
after modify: A
tokens
after modify: A
and
after modify: A
some
after modify: A
more
after modify: A
tokens
after modify: A

发现string已经修改了。(第一次调用strtok,在string里面的A后面加上了NULL字符,所以这样了。。。)
strtok第一次调用时,忽略开始的分隔符,返回第一个token的指针,并token后面加上null字符,记以null结尾。如果要得到剩下的字段,
可以继续调用strtok(),不过第一个参数设为NULL,第二个参数可根据你记录的需求来设定。因此,strtok函数可以提取多种分隔符分隔的字段。


http://www.ngui.cc/el/5281718.html

相关文章

TCP/IP 转

要写网络程序就必须用Socket &#xff0c;这是程序员都知道的。而且&#xff0c;面试的时候&#xff0c;我们也会问对方会不会Socket编程&#xff1f;一般来说&#xff0c;很多人都会说&#xff0c;Socket编程基本就是listen&#xff0c;accept 以及send&#xff0c;write等几…

linux 下gprof 和 oprofile 分析程序性能工具 [转]

有些时候&#xff0c;我们特别关注程序的性能&#xff0c;特别是底层软件&#xff0c;比如驱动程序&#xff0c;OS等。为了更好的优化程序性能&#xff0c;我们必须找到性能瓶颈点&#xff0c;“好钢用在刀刃上”才能取 得好的效果&#xff0c;否则可能白做工作。为了找到关键路…

php json中文编码为null 的解决办法

今天使用json_encode函数&#xff0c;发现中文竟成了null。 原因分析&#xff1a;使用json_encode函数应应使用utf-8编码&#xff0c;我的页面用的是gbk. 解决&#xff1a;在json_encode函数前使用iconv(gbk,utf8)函数。函数 function gbk2utf8($data) { if(is_array($data…

string 到 int的转换

1. c中string到int的转换 1) 在C标准库里面&#xff0c;使用atoi&#xff1a; #include <cstdlib> #include <string> std::string text "152"; int number std::atoi( text.c_str() ); if (errno ERANGE) //可能是std::errno { …

[linker error] undefined reference to vtable for **

1.在开始——所有程序——Qt by Trolltech v4.3.0&#xff08;opensource&#xff09;找到Qt 4.3.0Command Prompt 2.在Command Prompt找到工程的路径 3.moc xxxx.h 4.右击Command Prompt,选全选&#xff0c;按CTRLC 5.将复制的内容粘贴到任何一个记事本里 6.将生成的代码粘贴到…

判断点是否在三角形内[转]

本文只是翻译和整理&#xff0c;原文在此http://www.blackpawn.com/texts/pointinpoly/default.html 概述 给定三角形ABC和一点P(x,y,z)&#xff0c;判断点P是否在ABC内。这是游戏设计中一个常见的问题。需要注意的是&#xff0c;这里假定点和三角形位于同一个平面内。 本文…

word中mathtype公式编辑

一 mathtype工具栏在word中消失 解决&#xff1a;如果安装了mathtype&#xff0c;则是没有加载或加载不成功。 1&#xff0c; 点击左上角的菜单&#xff0c;在右下角打开word选项&#xff0c;选中“加载项”&#xff0c;选中右边的“mathpage.wll”&#xff0c;在下面管理中选…

google 的广告系统

很多人使用 Google 的产品和服务很多年&#xff0c;一直不清楚 Google 靠什么挣钱&#xff0c;因为 Google 的服务全部是免费的。答案是搜索广告和与网页内容相关的广告。&#xff08;当然&#xff0c;Google 还有一些企业级产品&#xff0c;但是这些产品占不到营业额的百分之五…

排序比较函数

七种qsort排序方法 <本文中排序都是采用的从小到大排序> 一、对int类型数组排序 int num[100]; Sample: int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; } qsort(num,100,sizeof(num[0]),cmp); 二、对char类型数组排序&#xff08;同int类型…

python dict访问

今天把一个150多万的key装进dict, 对数据量上百万的查询dict, 判断某个key是否在dict中&#xff0c;听某些人(网上)说用 key in dict.keys();速度会比 dict.has_key(key)要快很多。 结果我使用了下面的语句&#xff1a; if key in dict.keys(): value dict[key] do_somethi…