C/C++字符串函数strtok()详解

函数作用

找到与delimiter相同的地方,将其截断,并返回str

函数理解

第一个参数str是待切割字符串

第二个参数delimiter是分隔符字符串

返回值为char * ,一般默认返回str的地址

strtok() 的原理是将查找到与delimiter相同的部分字符串的首位变成 ' \ 0 ',然后返回str的首元素地址,完成”截断“行为。

示例

	char arr3[] = "abcdefghijklmnopqrst";
	char arr4[] = "ghi";
	printf("%s\n", arr3);
	char* a = strtok(arr3, arr4);
	printf("%s\n", a);
//输出结果
//abcdefghijklmnopqrst
//abcdef

使用 strtok()  之前                                                    使用 strtok() 之后

若在使用过一次 strtok() 函数之后再次使用strtok() 函数,可不加参数

仅限一次,多了就输出NULL

原因:第一次使用完毕之后 strtok() 函数会保存使用过的地址

示例

	char arr3[] = "abcdefghijklmnopqrst";
	char arr4[] = "ghi";
	printf("%s\n", arr3);
	char* a = strtok(arr3, arr4);
	printf("%s\n", a);
	char* b = strtok(NULL, arr4);
	printf("%s\n", b);
	char* c = strtok(NULL, arr4);
	printf("%s\n", c);

//输出结果
//abcdefghijklmnopqrst
//abcdef
//jklmnopqrst
//(null)

若之前未使用过  strtok() 函数,不加第一个参数的话,编译器会崩溃的

	char* d = strtok(NULL, arr4);
	printf("%s\n", d);
//编译器崩溃了
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值