Tenes que comparar *version, es decir, una cadena vacia y no un puntero nulo. Ademas si queres restar uno al primer caracter de version (justamente *version) tenes que hacerlo decrementando (siempre que no sea 0 ...) y no restando 49 (numero ASCII de 1, aunque en tu caso estas restando al puntero ...).
Código:
String versionAnterior(String version)
{
String token = strtok_s(NULL, ".", &version);
if (!*version)
{
(*token)--;
return token;
}
else
{
return versionAnterior(version);
}
}
Seguramente con String a = "1.2"; te dara una excepcion al intentar poner el 0 en a debido a que de esa manera declaras un puntero a una cadena que sera alojada en la seccion de datos de solo lectura. De esta manera podes hacer que la cadena sea alojada en la pila - usando un array - y a siga siendo un puntero a cadena con el mismo contenido:
Código:
char b[] = "1.2";
String a = (String)&b;