1

我有问题。所以我在具有相同语法的字符串上使用 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

也许代码的其他部分会影响这种方法......

希望有人有一些想法。

问候,

4

0 回答 0