strtok函数的使用示例

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

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

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

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

我们来写个例子验证一下,就写分割时间的例子吧,获取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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • C++中sort函数的基础入门使用教程

    前言 STL主要包含容器,迭代器,算法三块内容,用户可以对容器进行一系列的操作,比如遍历和计算,而STL提供的迭代器和容器完美地提供了这样的接口.其中std::vector是最常用的容器之一,vector是一个模板类,定义在命名空间namespace下,使用vector需要在包含相关头文件.今天主要讲解对vector的排序的使用. sort类函数: 函数名 功能描述 sort 对给定区间所有元素进行排序 stable_sort 对给定区间所有元素进行稳定排序 partial_sort 对给定区间

  • node.js调用C++函数的方法示例

    目前nodejs调用c++主流的有两种方法,分别是addons和ffi addons是nodejs官方的c++扩展实现方案,但是由于需要使用模版,并且要对v8引擎有一定的了解,入门门槛较高. ffi是nodejs直接调用so库的一种实现,可以调用纯c的接口. 要想node.js调用C++的函数等,须先将C++代码编译成二进制的.node文件.node.js官方文档https://nodejs.org/dist/latest-v8.x/docs/api/addons.html中的C++ addon

  • C++函数指针和回调函数使用解析

    函数指针 函数指针是指向函数的指针变量. 通常我们说的指针变量是指向一个整型变.字符型或数组等变量,而函数指针是指向函数. 函数指针可以像一般函数一样,用于调用函数.传递参数. 函数指针变量的声明: typedef int (*fun_ptr)(int,int); // 声明一个指向同样参数.返回值的函数指针变量 实例 以下实例声明了函数指针变量 p,指向函数 max: #include <stdio.h> int max(int x, int y){ return x > y ? x

  • C++中的六个函数

    一.构造函数 在C++中,构造函数是六个函数中的第一个,当一个对象被创建时,在它的整个周期中,是一个由生到死的过程,即构造函数创建对象,析构函数析构对象.在对象被创建时,调用构造函数创建一个对象,这是对象的创建过程.在C++中,当你创建一个对象时需要调用构造函数创建对象,在类中,有默认的构造函数,当然你也可以去使用构造函数去创建对象,对数据进行初始化.看下面的例子: class Base { public: Base() {} Base(int a=0):num(a) {} Base(int a

  • c/c++ 标准库 bind 函数详解

    bind函数定义在头文件 functional 中.可以将 bind 函数看作一个通用的函数适配器,它接受一个可调用对象,生成一个新的可调用对象来"适应"原对象的参数列表. bind函数:接收一个函数名作为参数,生成一个新的函数. auto newCallable = bind(callbale, arg_list); arg_list中的参数可能包含入_1, _2等,这些是新函数newCallable的参数. 在这篇博客lambda 表达式 介绍 中,讨论了find_if的第三个参数

  • C语言切割多层字符串(strtok_r strtok使用方法)

    1. strtok介绍 众所周知,strtok可以根据用户所提供的分割符(同时分隔符也可以为复数比如",.")将一段字符串分割直到遇到"\0". 比如,分隔符="," 字符串="Fred,John,Ann" 通过strtok 就可以把3个字符串 "Fred"      "John"       "Ann"提取出来. 上面的C代码为 复制代码 代码如下: int in=

  • C++中strtok()函数的用法介绍

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

  • PHP strtok()函数的优点分析

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

  • 详解C++调用Python脚本中的函数的实例代码

    1.环境配置 安装完python后,把python的include和lib拷贝到自己的工程目录下 然后在工程中包括进去 2.例子 先写一个python的测试脚本,如下 这个脚本里面定义了两个函数Hello()和_add().我的脚本的文件名叫mytest.py C++代码: #include "stdafx.h" #include <stdlib.h> #include <iostream> #include "include\Python.h&quo

  • C++根据传入的函数指针来解析需要的参数(推荐)

    C++可以根据传入的函数指针,获取自己需要的参数类型,然后根据参数源中获取需要的参数,这里我用tuple作为演示,不过,只要可以根据序号,或者顺序方式等获取实参,都可以使用类似的方式实现: 先给出一个辅助函数: /** 获取第N个类型 */ template <typename... Cases> struct select { }; template <typename T, typename... Cases> struct select<T, Cases...>

随机推荐