Come convertire una stringa in un INT C

December 14

In "C", stringhe di caratteri sono memorizzati come una serie di codici di caratteri e manipolati come caratteri. Se il vostro stringhe di caratteri rappresentano numeri interi, convertirli in interi prima di eseguire qualsiasi operazioni matematiche, come le addizioni e sottrazioni. Per esempio, non è possibile aggiungere le stringhe di caratteri "123" e "5" e si aspettano "128". La stringa di caratteri "123" è un array di caratteri quattro posizioni che contiene i codici di carattere ASCII per '1,' '2' ', 3' e "null". Fortunatamente, c'è una funzione di libreria standard, "atoi", che converte le stringhe di caratteri di interi in C.

istruzione

1 Includere i file di intestazione per lo standard input e di output biblioteca e la libreria standard, nonché il file dei limiti di intestazione. Ricordate che includono le direttive iniziare nella prima colonna in "C."

includere <stdio.h> includere <stdlib.h> includere <limits.h>

2 Iniziate la vostra programma principale e dichiarare una variabile per la stringa di caratteri e uno per il vostro intero risultante. Se la macchina è una implementazione a 32 bit, l'intervallo per i numeri interi è da --2, 147, 483, 648-2, 147, 483 e 647. In tal modo, una serie di 11 posizione è abbastanza grande per gestire la stringa di caratteri che si desidera convertire.

int main ()

{

char my_string [11];

int numero;

3 Chiedi l'utente per una stringa di caratteri da convertire. Dare l'intervallo valido per gli interi sul sistema in modo che il valore inserito non è troppo grande o troppo piccolo per il vostro sistema da gestire. Le costanti INT_MIN e INT_MAX dal file di intestazione limiti specificare l'intervallo valido per gli interi sul proprio sistema.

printf ( "Si prega di inserire una stringa numerica tra% de% d. \ n", INT_MIN, INT_MAX);

gets (my_string);

4 Convertire la stringa con la funzione atoi e memorizzare il risultato nella variabile int. La funzione atoi restituisce il valore convertito, uno zero se non c'è conversione, o la costante INT_MIN o INT_MAX se la stringa di caratteri è fuori portata.

numero = atoi (my_string);

5 Stampa la stringa originale e l'intero risultante. Usa il codice% s per la stringa e% d per il numero intero. Per verificare la stringa è stato convertito, eseguire una semplice operazione matematica sul valore risultante e stampare la risposta. Terminare il programma principale per la restituzione di un codice di successo e inserendo il closing}.

printf ( "L'originale stringa% s è l'intero% d. L'aggiunta di 6 dà% d \ n",

my_string, number, number+6);

return 0;

}

Consigli e avvertenze

  • Se il risultato da atoi è INT_MIN o INT_MAX, è possibile l'utente immesso un valore al di fuori dell'intervallo intero valido. È possibile aggiungere un'istruzione if per verificare il valore della vostra intero restituito e stampare un messaggio se è uguale a INT_MIN o INT_MAX. La funzione atoi si fermerà l'elaborazione di una stringa se incontra un carattere non valido. Per esempio, se l'utente digita "245,32", atoi sarà solo raccogliere il "245" da un '.' non è un carattere valido per un numero intero.