Necesito comprobar si una cadena C es un entero válido.Determinar si una cadena C es una int válida en C
He intentado tanto
int num=atoi(str);
y
int res=sscanf(str, "%d", &num);
Pero el envío de la cadena "8 -9 10"
en las dos líneas de regresar simplemente 8, sin indicar la invalidez de esta cadena.
¿Alguien puede sugerir una alternativa?
'atoi' no verifica errores; su comportamiento si 'str' no contiene una representación de un valor' int' no está definido. (Las implementaciones típicas devuelven '0'.)' Sscanf' es mejor, pero su comportamiento no está definido si el valor de la cadena no es representable como 'int'. Además, su título dice que quiere verificar si hay una int válida, pero el cuerpo de su pregunta dice "entero válido"; ellos no son lo mismo 'int' es uno de varios tipos * enteros *. –