strtok函数的用法示例

本文深入解析了C语言中strtok函数的工作原理及注意事项,特别是它如何改变原始字符串,并提供了具体的例子来展示其行为。

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

对于strtok这个函数有一点要特别注意一下,那就是它会改变第一个参数的内容。例如以上那段代码,str的内容在每一次strtok之后,其中的分隔符(在这里就是空格,为什么是空格呢?因为seps设为了空格)都会被替换为ASCII码为0的空值。

再来详细看看,str在初始化后在内存中是这样的:41 20 42 20 43 20 44 20 45 20 46 20 47 00

而while循环结束后str是这样的:41 00 42 00 43 00 44 00 45 00 46 00 47 00

因此,此时如果你用printf之类的函数输出str,则结果会是:A。

所以,在使用这个函数时,如果不想参入的第一个参数(即:要被分隔的字符串)的内容被更改,那么就要自己保存一份副本。

 

这个问题曾经使我困惑,在此特别提出,希望能对大家有点用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值