首页 > 其他分享 >strtok函数的用法

strtok函数的用法

时间:2023-08-28 14:32:17浏览次数:27  
标签:函数 sep strtok 用法 char 字符串 NULL

定义:

char * strtok (char * str, const char * sep);

•sep参数是个字符串,定义了用作分隔符的字符集合

•第一个参数指定一个字符串,它包含了0个或者多个由sep字符串中一个或者多个分隔符分割的标记。


•strtok函数找到str中的下一个标记,并将其用'\0'指向这个标记的指针。(注:strtok函数会改变被操作的字符串,所以在使用strtok函数切分的字符串一般都是临时拷贝的内容并且可修改。)

•strtok函数的第一个参数不为NULL,函数将找到str中第一个标记,strtok函数将保存它在字符串中的位置。

•strtok函数的第一个参数为NULL,函数将在同一个字符串中被保存的位置开始,查找下一个标记。

•如果字符串中不存在更多的标记,则返回NULL指针

例:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<string.h>
//strtok
//切割字符串
//



int main()
{
	const char* sep = "@.";
	char email[] = "[email protected]";
	char cp[40] = { 0 };//"[email protected]"
	strcpy(cp, email);

	char* ret = NULL;
	for (ret = strtok(cp, sep);
		ret != NULL;
		ret = strtok(NULL, sep))
	{
		printf("%s\n", ret);
	}
}

运行结果:

strtok函数的用法_分隔符


以上就是strtok函数的基本用法,欢迎指正~


标签:函数,sep,strtok,用法,char,字符串,NULL
From: https://blog.51cto.com/u_16210399/7263615

相关文章

  • Javascript中this的用法小结
    1.概述this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象。但是在javascript中,由于javascript的动态性(解释执行,当然也有简单的预编译过程),this的指向在运行时才确定。这个特性在给我们带来迷惑的同时也带来了编程上的......
  • pycharm中自定义函数补全
    在PyCharm中,你可以通过以下步骤实现这一目标:打开PyCharm,点击顶部菜单的"File"(文件)->"Settings"(设置)。在弹出的窗口中,选择"Editor"(编辑器)->"LiveTemplates"(代码模板)。在左侧的列表中,选择"Python"或者你希望的分类,然后点击右侧的"+"按钮,添加一个新的代码模板。......
  • ubuntu上mysql的安装以及基本用法
    1.使用apt-get查找当前可用的mysql版本.apt-cachesearchmysql返回的结果集为: 2.通过结果集找到最新可用的服务端是mysql-server,安装mysql-serversudoapt-getinstallmysql-server 按提示安装即可(中间会提示设置root口令)。3.测试是否安装正确#登录mysql-uroot-p出现以下......
  • torch.argmax()函数-截至2023年8月28日
    argmax函数参数dim=0表示从列获取最大值索引,dim=1从行获取最大值索引,dim=-1从最后一个维度获取最大值索引[1]。举例importtorchd=torch.tensor([[9,7,6], [4,8,2],[5,10,0]])print(torch.argmax(d,dim=0))#结果应为9,10,6的所在列的索引==》0,2,0prin......
  • MySQLSTMT函数详解及使用方法(mysql_stmt())
    MySQL_STMT函数详解及使用方法 MySQL_STMT是MySQL提供的一个CAPI,用于执行预处理语句(Preparedstatements)。相比于直接执行SQL,预处理语句具有更高的运行效率和更好的安全性。本文将详细介绍MySQL_STMT函数的使用方法。 1.创建预处理语句 使用MySQL_STMT,需要先创建一个预......
  • torch.sum()用法-截至2023年8月28日
    torch.sum()维度0,1,2。比如现在有\(3\times\2\times3\)的张量,理解为3个\(2\times3\)的矩阵。当dim=0,1,2时分别在哪个维度上相加[1]?下面是具体的矩阵\[[1,2,3]\\[4,5,6]\\\\[1,2,3]\\[4,5,6]\\\\[1,2,3]\\[4,5,6]\]在哪个维度相加,那个维度就去掉。\(3\times2\times3\)分别......
  • React加载组件后自动触发某函数,而不需要点击按钮
    问题在项目中使用了ReactToPrint来实现打印,但是trigger属性中的按钮需要点击才能执行打印。期望能在组件加载完成时自动执行打印方法。解决可在组件加载完成时,通过id获取组件,并执行该组件的click方法。代码如下:importReact,{useRef,useEffect}from'react';//.........
  • lowbit函数
    lowbit(n)取出n在二进制表示下最低位的1的位置intlowbit(intx){ return(x&-x);}原理就是将x的原码与上x的补码(-x:补码,~x:反码,补码等于反码加一)eg:6的原码:01106的补码:1010&运算:0010实际上就是最低位1的位置,但转化为十进制就是最低位的1以及它后面的0构成的数值......
  • 有了析构函数之后,为什么还要虚析构和纯析析构?
    我们知道析构函数释放父类的资源的,但如果子类中有属性开辟到堆区,那么父类是无法调用到子类的析构代码的,子类的占用的堆区内存如果没有得到释放,那么会造成内存泄漏。那么要让父类的指针能够调用子类的析构函数,释放子类的堆区内存,就要用到虚析构或者纯虚析构。虚析构......
  • 构造函数
    一、inline(内联)函数 什么情况下产生inline:函数在class的本体里面定义,就形成一种inline。在外头定义就不是inline。但是,是不是最后真的变成inlinefunction由编译器决定。inline有什么好处:快。有特点而没有缺点。尽量都写成inline那最好。2-2不在本体内定义,可以在......