带你10秒了解c语言strtok分割字符串

本文详细介绍了C语言中的strtok函数,包括其用法、要点以及如何在同一个源字符串上使用不同的分隔符。通过实例展示了函数的工作原理和常见应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述:

strtok是c语言中一个可以分割字符串的函数。
每次调用会返回子段的首地址。
分割失败返回NULL

用法:

strtok(目标字符串的首地址,分隔符)

要点:

1、strtok的分割不会产生新的字符串,也就是它的分割是在源字符串本身进行的。它将源字符串中的分隔符替换为’\0’。
2、每次调用strtok只能返回一段子串。
3、若始终对同一字符串进行分割:第一次调用strtok时,第一个参数要填源字符串的首地址;当第二次乃至以后调用时要将第一个参数设置为NULL。
4、分隔符要以字符串的形式设置。
5、最有意思的一点是:对同一源字符串操作时,每次设置的分隔符可以不同。下面的代码也说明这一点。
6、函数执行过程(同一次对源字符串的分割):
第一次使用时,会从strtok第一个地址参数开始,逐个读字符,遇到中第一个#时就停止,并返回#前面的内容的首地址,最后会将源字符串中第一个#换成’\0’,
第二次使用时,会从第一次使用时被换成’\0’的那个位置开始,逐个读取,直至遇到分隔符……

#include"stdio.h"
#include"string.h"
int main()
{
	char x[50]="123#dsadas#456#?11w1?#1w11";
	//第一次以"#"为分隔符
	printf("%s\n",strtok(x,"#"));
	//这个puts证明了会将源字符串中分隔符替换为'\0'。
	//补充:
	//①:puts(地址(一般为字符串首地址)),以此地址开始输出字符,遇到'\0'结束并输出'\n'。
	//②:字符串名字就是字符串的首地址。
	puts(x);
	while(1)
	{
		//接下来若干次都以"?"或"w"来分割源字符串。
		printf("%s\n",strtok(NULL,"?||w"));
	}
}
/*
运行结果:
123
123
dsadas#456#
11
1
#1
11
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值