A doubt a strtok

Hello.

I am using for the first time strtok() and it seams to be good but not 100%

Here is my code

char *lon, *lat, *day, *hour;
        // 0,6.141163,46.219819,2015/09/25,19:15:20
        char *cha = strtok((char *)comm_buf,",");
        byte c = 0;
        do
        {
          switch(c){
            case 0:
              cha = strtok(NULL,",");
              Serial.print(F("Lon:"));
              Serial.println(cha);
              break;

            case 1:
              cha = strtok(NULL,",");
              Serial.print(F("lat:"));
              Serial.println(cha);
              break;

            case 2:
              cha = strtok(NULL,",");
              Serial.print(F("Day:"));
              Serial.println(cha);
              break;

            case 3:
              cha = strtok(NULL,",");
              Serial.print(F("Hour:"));
              Serial.println(cha);
              break;
              
            case 4:
              cha = strtok(NULL,",");
              Serial.print(F("?:"));
              Serial.println(cha);
              break;

            default:
              Serial.println(F("Def"));

          }
          c++;
        }while(cha != NULL);

This display that:

Lon:6.141163
lat:46.219819
Day:2015/09/25
Hour:19:42:04
?:

I need to extract the following string delimited by a “,”.

My first question:
How can I print the 0 (which is before the first “,” is not displayed?

My second question:
Why if I removed this

case 4:
              cha = strtok(NULL,",");
              Serial.print(F("?:"));
              Serial.println(cha);
              break;

“ref” is printed.

Many thank and have a nice day

The parse example in Serial Input Basics illustrates the use of strtok()

...R