Devo verificare se una stringa C è un numero intero valido.Determinare se una stringa C è un valore int valido in C
Ho provato entrambi
int num=atoi(str);
e
int res=sscanf(str, "%d", &num);
Ma l'invio della stringa "8 -9 10"
in entrambe le linee tornato semplicemente 8, senza indicare l'invalidità di questa stringa.
Qualcuno può suggerire un'alternativa?
'atoi' non verifica errori; il suo comportamento se 'str' non contiene una rappresentazione di un valore' int' non è definito. (Tipiche implementazioni restituiscono '0'.)' Sscanf' è migliore, ma il suo comportamento non è definito se il valore nella stringa non è rappresentabile come 'int'. Inoltre, il tuo titolo dice che vuoi controllare un int valido, ma il corpo della tua domanda dice "numero intero valido"; non sono la stessa cosa 'int' è uno dei numerosi * tipi interi *. –