strtok在keil中使用小笔记及字符串转换为多个浮点数的方法

在pc上面使用这个字符串函数,是没有问题的,但是我在keil中结合rtos来处理字符串的时候,比如char *s = "1.01313;17.2609;17.4875";那么就只能解析到1.01313,后面的数据是错误的,也不知道是啥原因,后来干脆使用了比较简单的方式:

1.01313直接使用atof(s)来提取,因为atof函数遇到;会自动结束转换,得到浮点数1.01313

第二个可以使用strchr函数,strchr返回一个指针,该指针指向C字符串str中第一次出现的字符。 终止的空字符被视为C字符串的一部分。因此,也可以定位它以便检索指向字符串末尾的指针。

使用strchr(s,';'),得到第一个;所在的位置,保存到指针中,然后指针++,就指向了17开始的地方,然后再用atof计算即可,函数遇到“;”会自动结束转换得到17.2609

第三个可以使用strrchr函数,strrchr返回一个指针,该指针指向C字符串str中最后一次出现的字符。 终止的空字符被视为C字符串的一部分。因此,还可以定位它以检索指向字符串末尾的指针。

使用strrchr(s,';'),得到第二个;所在的位置,保存到指针中,然后指针++,就指向了17开始的地方,然后再用atof计算即可,函数遇到“;”会自动结束转换得到17.4875

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值