在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