¿Cómo analizo los campos en una cadena separada por comas usando sscanf mientras se admiten campos vacíos?
Tengo una cadena separada por comas que puede contener campos vacíos. Por ejemplo:
1,2,,4
Utilizando un básico
sscanf(string,"%[^,],%[^,],%[^,],%[^,],%[^,]", &val1, &val2, &val3, &val4);
Obtengo todos los valores antes del campo vacío y los resultados inesperados del campo vacío en adelante.
Cuando elimino la expresión para el campo vacío de sscanf (),
sscanf(string,"%[^,],%[^,],,%[^,],%[^,]", &val1, &val2, &val3, &val4);
todo funciona bien
Ya que no sé cuándo voy a obtener un campo vacío, ¿hay alguna forma de volver a escribir la expresión para manejar los campos vacíos con elegancia?