字符串解析之strtok()

7 篇文章 0 订阅

strtok()函数的功能是将一个字符串按照分隔符分割成一个个新的短字符串。

原型:char *strtok(char str[], const char *delim)

str是要用来分割的原字符串,delim是用来进行分割的分隔符号。

该函数返回值是分割后的字符串的起始位置指针。

在分割一个较长字符串的时候,第一次第一个参数str是要进行分割的原字符串,第二次再次调用该函数的时候,如果第一个参数传入NULL,则就是默认从上一次未分割完的字符串的起始位置作为本次分割的起点。因此可以利用该特点不断进行分割,直到将原字符串全部分割完毕。

注意:之所以说该函书是将原字符串进行分割,是因为没有生成新的字符串,只是在原字符串上动了手脚,将原字符串拆分,因此发生变化的,只有原字符串。

比如需要解析以下文本中的内容:

1 USB CB 04 00 00 00 00 00 00 00 01 01 00 00 00 00 00

可利用file.Seek()来将文件指针指向文件开头;

然后利用file.ReadString()来获取文件中第一行的数据,存入CString 类型变量中,假如存入CString strline中吧。

m_id = (CString)strtok(strline.GetBuffer(0)," ");

此时“1 USB CB 04 00 00 00 00 00 00 00 01 01 00 00 00 00 00”存入strline中,以上代码的意思就是将strline中的字符串按照空格符号“ ”进行分割。

m_id也是CString类型,由于strtok()函数返回值是分割后的新字符串,因此m_id = “1”;

接下来的几次中,不断地:

cmd_temp = (CString)strtok(NULL," ");

根据特性,该函数就会从第一次还未分割完毕的那部分接着以分隔符“ ”再次进行分割。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值