trying to split a char

PaulS- fair enough, I will try to be more accurate with my terminology. I read each incoming byte on a software serial port and put it into a char array. I split the data using strtok() and use atoi, atol and atof to populate the variables. All of this is working well and I have successfully split all the data based on the comma delimiter and populated all my variables. If all I needed was to print the time variable I would be good. However, I need to do some math with the hours, minutes and seconds and to the best of my knowledge this requires an int. I did not use atol because if the time is 000517 it would populate the time as 517 and drop all the zeros. If it drops the zeros I am not sure what index number represents HhMmSs. Because of this I decided to put the time variable as a char which keeps the zero(s) as a place holder. Now I need to somehow split the char and make int hours, int minutes, int seconds.

valPosition = strtok(GPGGAC, delimiters);
  i = 0;
  while(valPosition != NULL || i < 10){
    i++;  
    valPosition = strtok(NULL, delimiters); //Here we pass in a NULL value, which tells strtok to continue working with the previous string
    if(i==1){
      //time = atol(valPosition); //drops the zeros so I don't know how to split it like this
      time = *valPosition; //saves as a char but I dont know how to split it and change to int 
      Serial.print(F("time = "));
      Serial.println(time);
    }