strtok函数的应用

strtok函数是字符串函数库中的一个函数,函数原型如下:

char *strtok(char s[], const char *delim);

作用:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。

例如:"hello,hi:what?is!the.matter;" 把这串字符串传入strtok函数,第二个delim写 ",:?!.;" , 这样就可以得到6个不同的子字符串。

我们来写个例子验证一下,就写分割时间的例子吧,借用这个博客:http://blog.csdn.net/luoweifu/article/details/20288549写的获取UTC时间的例子,将它改一下:

修改如下:

#include <stdio.h>
#include <string.h>
#include <time.h>
int main()
{
    char *wday[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
    struct tm *p;
    char buf[100] = {0};
    char *q ;
    time_t timep;
    time(&timep); /*获得time_t结构的时间,UTC时间*/
    p = gmtime(&timep); /*转换为struct tm结构的UTC时间*/
    sprintf(buf,"%d/%d/%d-%s-%d:%d:%d\n",
    1900 + p->tm_year, 1 + p->tm_mon, p->tm_mday,
    wday[p->tm_wday], p->tm_hour,  p->tm_min, p->tm_sec);
    printf("%s\n",buf);
    q = strtok(buf,"//--::");
    printf("q : %s\n",buf);
    while(1)
    {
    	q = strtok(NULL ,"//--::");
    	if(q == NULL)
    		break ;
    	printf("q : %s\n",q);
	}
    return 0;
}  

运行结果:

2017/8/17-Thu-8:24:43
q : 2017
q : 8
q : 17
q : Thu
q : 8
q : 24
q : 43
时间: 2024-10-27 10:51:05

strtok函数的应用的相关文章

PHP的strtok()函数实例应用

相对于explode()来说,strtok()函数可以控制节奏.按需切割字串.其优点是: 1.可以一次定义多个分隔符.函数在执行时,是按单个分隔符来切割,而不是按整个分隔符,而explode则是按整个分隔串来切割的.正因此,explode可以用中文切割,而strtok则不行,会乱码. 2.在使用while或for配合strtok()遍历时,可以随时更换分隔符,也可以随时用break跳出终止切割. 示例1:演示用中文+explode来切割 $string = "这是PHP论坛 论坛版块 论坛栏目 

PHP:strtok()函数的应用

相对于explode()来说,strtok()函数可以控制节奏.按需切割字串.其优点是: 1.可以一次定义多个分隔符.函数在执行时,是按单个分隔符来切割,而不是按整个分隔符,而explode则是按整个分隔串来切割的.正因此,explode可以用中文切割,而strtok则不行,会乱码. 2.在使用while或for配合strtok()遍历时,可以随时更换分隔符,也可以随时用break跳出终止切割. 示例1:演示用中文+explode来切割 $string = "这是PHP论坛 论坛版块 论坛栏目

为什么这段c语言代码运行后会崩溃?关于strtok函数

问题描述 为什么这段c语言代码运行后会崩溃?关于strtok函数 #include #include //strtok int main() { char *arry = "i love you China"; char *token = strtok( arry, " "); while( token != NULL) { printf("%s", token); token = strtok( NULL, " "); }

strtok函数-C/C++ 指针数组赋值问题

问题描述 C/C++ 指针数组赋值问题 有两个指针数组,char *A[10] , char * B[10]; 首先: memcpy(A,B,10); 然后调用一个函数,其形参是一个指针数组,在这个函数里面是用strtok函数对字符串进行分割,比如传入的是A.为什么这个函数执行完了之后,B中保存的数据怎么不是函数执行前的数据呢. 有什么方法能够使执行完函数之后,B中保存的数据还是执行前的数据? 谢谢,,个位大神了!!帮帮忙! 解决方案 c/c++语言 指针赋值问题[C/C++]指针数组 解决方案

PHP中strtok()函数的优点详细解析

相对于explode()来说,strtok()函数可以控制节奏.按需切割字串.其优点是: 1.可以一次定义多个分隔符.函数在执行时,是按单个分隔符来切割,而不是按整个分隔符,而explode则是按整个分隔串来切割的.正因此,explode可以用中文切割,而strtok则不行,会乱码. 2.在使用while或for配合strtok()遍历时,可以随时更换分隔符,也可以随时用break跳出终止切割. 示例1:演示用中文+explode来切割 $string = "这是PHP论坛 论坛版块 论坛栏目

C++中strtok()函数的用法介绍_C 语言

函数原型:char *strtok(char *s, const char *delim);Function:分解字符串为一组字符串.s为要分解的字符串,delim为分隔符字符串.Description:strtok()用来将字符串分割成一个个片段.参数s指向欲分割的字符串,参数delim则为分割字符串,当strtok()在参数s的字符串中发现到参数delim的分割字符时 则会将该字符改为\0 字符.在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL.每次调

PHP strtok()函数的优点分析_php技巧

其优点是: 1.可以一次定义多个分隔符.函数在执行时,是按单个分隔符来切割,而不是按整个分隔符,而explode则是按整个分隔串来切割的.正因此,explode可以用中文切割,而strtok则不行,会乱码. 2.在使用while或for配合strtok()遍历时,可以随时更换分隔符,也可以随时用break跳出终止切割. 示例1:演示用中文+explode来切割 $string = "这是PHP论坛 论坛版块 论坛栏目 论坛H管理员 论坛会员"; $arr = explode("

字符处理函数 strtok(string str,string arg)

函数 今天用到一个函数,查了一下手册,给出了如下的说明: <?php$string = "This is\tan example\nstring";$tok = strtok($string," \n\t");while ($tok) { echo "Word=$tok<br>"; $tok = strtok(" \n\t");}?> 输出: Word=This Word=is Word=an Word

strtok:字符串分割函数

    最近一直纠结于一个十分简单的问题:如何将一个字符串按标志分割开来?提出这个问题的初衷是自己在处理一个将命令行字符串转换为argc,argv格式的问题.     尝试了很多种方法,最后觉得利用strtok()函数来实现是一个比较好的方法.首先进行strtok()函数的介绍. char *strtok(string, control);      --- Tokenize string with delimiter in control.    --- 通过分割符控制将字符串切片化. Pur