C语言strtok函数的用法

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);
	}
}
  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值