C语言strtok函数的用法

本文详细介绍了C语言中strtok函数的使用方法,包括其定义、参数说明及如何通过实例演示字符串切割过程。通过具体示例代码展示了如何利用strtok进行多次切割,并提供了实际应用中的循环调用方式。

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

strtok是字符串切割函数

定义

  • 参数一:待切割字符串
  • 参数二:分隔符集合
  • 首次调用时传递参数为:
    strtok(str,seps);
  • 之后再次调用时传递参数为:
    strtok(NULL,seps);
  • ​ 若可以切割,函数返回值为字符指针,各段切割好的字符串
  • ​ 若分割完毕,函数返回值为空指针

举例

用“.“或者”@”切割字符串"litianyi@hust.edu@cn"得到
itianyi hust edu cn
#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<assert.h>
#include<stdlib.h>
int main()
{
	char str[30] = "litianyi@hust.edu@cn";
	char seps[] = ".@";
	char* s1 = NULL;
	//第一次调用时strtok函数找到@符号,将@符号改为'\0',记录位置,
	//下次调用时strtok函数从'\0'处开始向后切割字符串,所以之后调用传递NULL即可
	//可以分析得出strtok函数内部必有static修饰的局部变量
	s1 = strtok(str, seps);
	printf("%s\n", s1);
	//再次调用时找到'.',将‘.'改为'\0',返回hust,记录位置
	s1 = strtok(NULL, seps);
	printf("%s\n", s1);
	//第三次调用时找到'@',将‘@'改为'\0',返回edu,记录位置
	s1 = strtok(NULL, seps);
	printf("%s\n", s1);
	//第四次调用时返回cn
	s1 = strtok(NULL, seps);
	printf("%s\n", s1);
	//第五次调用时返回空指针,结束分割
	s1 = strtok(NULL, seps);
	if (s1 == NULL)
	{
		printf("我是空指针");
	  }
}

运行结果

image-20210410122952904

实际用法

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<assert.h>
#include<stdlib.h>

int main()
{
	
	char str[30] = "litianyi@hust.edu@cn";
	char seps[] = ".@";
	char* s1 = NULL;
	/*实际用法*/
	for (s1=strtok(str,seps);s1!=NULL;s1=strtok(NULL,seps))
	{
		printf("%s\n", s1);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值