strtok函数是cstring文件里的函数





strtok函数是cstring文件里的函数

其功能是截断字符串

原型为:char *strtok(char s[],const char *delin);

s[]是要截断的字符串,delin是用来截断的字符串。

每次调用成功后则返回切割出片段的指针。

比如,strtok("aaa,sa",",");第一次运行就会返回','之前的aaa


#include<iostream>
#include<cstring>
using namespace std;
int main(){
char s[101];
char * p;
cin.getline(s,100);
p=strtok(s,",");
cout << p;
return 0;
}

比如上述程序,假设输入为s=“asdf,fghjk”输出就为指向sadf的指针,其内存为静态分配。

当下一次使用该函数时。s就应该变为NULL。p=strtok(NULL,",");

#include<cstring>   #include<iostream>
using namespace std; int main(){
char s[101];
char * p;
cin.getline(s,100);
p=strtok(s,",");
while (p){
cout << p;
p = strtok(NULL,",");
}
return 0;
}

该例程就依次输入","分隔开的字符串。

比如输入为s="asd,fgh,jkl,asd"

就会输出asd       fgh      jkl     asd

strtok函数的内存分配是静态的,是一个线程不安全的函数。

能够使用例如以下函数进行动态内存分配。

1.
strtok_s是windows下的一个切割字符串安全函数,其函数原型例如以下:
char *strtok_s( char *strToken, const char *strDelimit, char **buf);
这个函数将剩余的字符串存储在buf变量中。而不是静态变量中,从而保证了安全性。
2.
strtok_r函数是linux下切割字符串的安全函数,函数声明例如以下:
char *strtok_r(char *str, const char *delim, char **saveptr);
该函数也会破坏带分解字符串的完整性。可是其将剩余的字符串保存在saveptr变量中,保证了安全性。

strtok函数的更多相关文章

  1. shell脚本调用C语言之字符串切分之strtok函数

    今天上午在写一个需求,要求的比较急,要求当天完成,我大致分析了一下,可以采用从shell脚本中插入一连串的日期,通过调用proc生成的可执行文件,将日期传入后台数据库,在数据库中进行计算.需要切分日期 ...

  2. strtok函数 分类: c++ 2014-11-02 15:24 214人阅读 评论(0) 收藏

    strtok函数是cstring文件中的函数 strtok函数是cstring文件中的函数 其功能是截断字符串 原型为:char *strtok(char s[],const char *delin) ...

  3. strtok函数读写冲突问题

    先上测试代码 #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int a ...

  4. 字符串函数之Strtok()函数

    Strtok()函数详解:   该函数包含在"string.h"头文件中 函数原型: char* strtok (char* str,constchar* delimiters ) ...

  5. STRTOK函数和STRTOK_R函数

    STRTOK函数和STRTOK_R函数 注:本文转载自博客园,感谢作者整理! 1.一个应用实例 网络上一个比较经典的例子是将字符串切分,存入结构体中.如,现有结构体 typedef struct pe ...

  6. popen strtok 函数的使用

    FILE * popen ( const char * command , const char * type ); int pclose ( FILE * stream );   type 参数只能 ...

  7. [转载]strtok函数和strtok_r函数

    1.一个应用实例 网络上一个比较经典的例子是将字符串切分,存入结构体中.如,现有结构体 typedef struct person{     char name[25];     char sex[1 ...

  8. 温故而知新-strtok函数

    温故而知新-strtok函数 记得之前没见过这个函数,是把字符串分割成更小的字符串 来个例子就是比较鲜明了 $string = "Hello world. Beautiful day tod ...

  9. 用strtok函数分割字符串

    用strtok函数分割字符串 需要在loadrunner里面获得“15”(下面红色高亮的部分),并做成关联参数. //Body response 内容: <BODY><; PRE&g ...

  10. lr中用strtok函数分割字符串

    需要在loadrunner里面获得“15”(下面红色高亮的部分),并做成关联参数. ,6,5,0,4,0,3,0,3,2,0,0,0,1 用web_reg_save_param取出“8,7,5,15, ...

随机推荐

  1. Java实现LRU(最近最少使用)缓存

    package com.jd.test; import java.io.Serializable; import java.util.LinkedHashMap; import java.util.c ...

  2. ios 封装sqllite3接口

    2013-03-25 17:41 261人阅读 评论(0) 收藏 举报 // #import <Foundation/Foundation.h> #import "sqlite3 ...

  3. typedef重复定义 和 error: ‘long long long’ is too long for GCC

    今天发现一个很有意思的编译问题,然后在Stack Overflow上也有看到类似的.就是出现了 long long long 类型错误提示 错误提示如下: /home/yejy/algorithm_a ...

  4. (1) LVS基本概念和三种模式

    网站架构中,负载均衡技术是实现网站架构伸缩性的主要手段之一. 所谓"伸缩性",是指可以不断向集群中添加新的服务器来提升性能.缓解不断增加的并发用户访问压力.通俗地讲,就是一头牛拉不 ...

  5. Linux常用命令大全--有关磁盘空间的命令

    1.mount 命令的功能是挂载文件系统,可以挂载硬盘.光盘.软盘,也可以挂载NFS网络文件系统 mount -t 设备类型 存放目录 mount IP地址:/所提供的目录 存放目录 (无) 不加任何 ...

  6. 大数据学习——linux常用命令(一)

    一.基本日常操作命令 1 查看当前所在工作目录的全路径 pwd 2 查看当前系统的时间 date 设置时间,date -s"2018-11-12" 修改时间后,需要写入硬件bios ...

  7. SQL2012通用分页存储过程

    --提取分页数据,返回总记录数 Createprocedure [dbo].[sp_Common_GetDataPaging_ReturnDataCount] ( @SqlString varchar ...

  8. 认识Linux文件系统的架构

    本文主要研究一下storm的OpaquePartitionedTridentSpoutExecutor TridentTopology.newStream storm-core-1.2.2-sourc ...

  9. [POJ2594] Treasure Exploration(最小路径覆盖-传递闭包 + 匈牙利算法)

    传送门 引子: 有一个问题,是对于一个图上的所有点,用不相交的路径把他们覆盖,使得每个点有且仅属于一条路径,且这个路径数量尽量小. 对于这个问题可以把直接有边相连的两点 x —> y,建一个二分 ...

  10. POJ 3680: Intervals【最小费用最大流】

    题目大意:你有N个开区间,每个区间有个重量wi,你要选择一些区间,使得满足:每个点被不超过K个区间覆盖的前提下,重量最大 思路:感觉是很好想的费用流,把每个区间首尾相连,费用为该区间的重量的相反数(由 ...