我有问题。所以我在具有相同语法的字符串上使用 strtok,当我 strtok 第一个字符串时,没关系,没问题,但是当其他字符串进入时 strtok 不起作用。它不能在逗号处拆分我的字符串。这是代码:
i=0;
po = 0;
po = strtok(inputStreamBuffer,",");
while (po != 0){
UART1_Write_Text(po);
UART1_Write_Text(" ");
if (i == 2){
if (strlen(po) < 15)
strcpy(bufLongitude,po);
}
if (i == 4){
if (strlen(po) < 15)
strcpy(bufLatitude,po);
}
if (i == 6){
if (strlen(po) < 3)
strcpy(TTFF,po);
}
if (i == 7){
if (strlen(po) < 3)
strcpy(numberOfSatellites,po);
}
if (i == 8){
if (strlen(po) < 10)
strcpy(speed,po);
}
if (i == 9){
if (strlen(po) < 12)
strcpy(courseOverGround,po);
courseOverGround[12] = '\0';
}
i++;
po = strtok(0,",");
}
po = 0;
检查字符串的长度对我来说是一件万无一失的事情。如果出现问题,我不希望我的程序将更大的字符串复制到我的变量中,这会破坏一切,谈到经验。我的方法也适用于第一个字符串。
第一次尝试:输入字符串示例:1,2,3,4,5,6,7,8,9,10 输出:var1:1 var2:2 var3:3 等等...
其他尝试,输入字符串相同,输出: var1: 1 var2: 2,3,4,5,6,7,8,9
也许代码的其他部分会影响这种方法......
希望有人有一些想法。
问候,