Dans "C," les chaînes de caractères sont stockées dans un tableau de codes de caractères et manipulés comme des caractères. Si vos chaînes de caractères représentent des nombres entiers, les convertir en nombres entiers avant d`effectuer des opérations mathématiques, telles que l`addition et la soustraction. Par exemple, vous ne pouvez pas ajouter les chaînes de caractères "123" et "5" et attendre "128". La chaîne de caractères "123" est un tableau de caractères à quatre positions contenant les codes de caractères ASCII pour `1,` `2` `, 3` et "NUL." Heureusement, il existe une fonction de bibliothèque standard, "atoi," qui convertit les chaînes de caractères en nombres entiers en C.
Inclure les fichiers d`en-tête pour l`entrée standard et la bibliothèque de sortie et la bibliothèque standard, ainsi que le fichier d`en-tête des limites. Rappelez-vous que les directives incluent commencer dans la première colonne "C."
comprendrecomprendrecomprendreCommencez votre programme principal et déclarer une variable pour votre chaîne de caractères et un pour votre entier résultant. Si votre machine est une implémentation 32 bits, l`intervalle des entiers est de --2, 147, 483, 648-2, 147, 483 et 647. Ainsi, un tableau en position 11 est assez grand pour gérer la chaîne de caractères souhaitez convertir.
int main()
{
carboniser my_string [11];
int nombre;
Demandez à l`utilisateur pour une chaîne de caractères à convertir. Donnez la plage valide pour les entiers sur votre système de sorte que la valeur saisie est pas trop grand ou trop petit pour votre système à gérer. Les constantes INT_MIN et INT_MAX à partir du fichier des limites d`en-tête spécifient la plage valide pour les entiers sur votre système.
printf ("S`il vous plaît entrer une chaîne numérique entre% d et% d. N", INT_MIN, INT_MAX);
gets (my_string);
Convertir la chaîne avec la fonction atoi et stocker le résultat dans votre variable int. La fonction atoi renvoie la valeur convertie, un zéro s`il n`y a pas de conversion, ou de la INT_MIN constante ou INT_MAX si la chaîne de caractères était hors de portée.
nombre = atoi (my_string);
Imprimer la chaîne d`origine et l`entier résultant. Utilisez le code d`un% pour la chaîne et% d pour le nombre entier. Pour vérifier la chaîne a été convertie, effectuer une opération mathématique simple sur la valeur résultante et imprimer la réponse. Terminez votre programme principal en retournant un code de succès et en entrant votre clôture}.
printf ("L`original chaîne% s est le nombre entier% d. Ajout de 6 donne% d n",
my_string, numéro, numéro + 6) -
return 0;
}
Conseils & Avertissements
- Si le résultat de atoi est INT_MIN ou INT_MAX, il est possible que votre utilisateur a entré une valeur hors de la plage entière valide. Vous pouvez ajouter une instruction if pour vérifier la valeur de votre entier retourné et imprimer un message si elle est égale à INT_MIN ou INT_MAX. La fonction atoi arrête de traiter une chaîne si elle rencontre un caractère non valide. Par exemple, si votre utilisateur entre "245,32", Atoi ne ramasser le "245" depuis un `.` est pas un caractère valide pour un nombre entier.