我正在尝试从调制解调器响应中解析出值,而我还没有找到一种方法可以在字符串后面扫描出最后一个整数值。使这更复杂的原因是所有值都是可变长度,唯一可能的分隔符是,
字符。我也不能使用strtok
,因为im在多线程嵌入式系统上而另一个线程已经使用了strtok。
sscanf格式化程序允许我解析仅在,
上拆分的所有4个值。
#include <stdio.h>
int main(void)
{
char *source = "+UUBTGRW:0,52,0100,1";
int one, two, four;
char string[100];
int count = sscanf(source, "+UUBTGRW:%u,%u,%[^,]s%u", &one, &two, string, &four);
printf("Source string: %s\n", source);
printf("Count: %u , One: %u , Two: %u , String: %s , Four: %u \n", count, one, two, string, four);
return 0;
}
输出:
Source string: +UUBTGRW:0,52,0100,1
Count: 3 , One: 0 , Two: 52 , String: 0100 , Four: 0
所需的输出将是:
Count: 4 , One: 0 , Two: 52 , String: 0100 , Four: 1