Fonction atof dans le langage C

Fonction atof dans le langage C
Les fonctions de conversion d'un type de données à une autre sont très utiles dans plusieurs cas. Ils nous permettent d'utiliser les différentes fonctions avec différents types de données dans leurs arguments d'entrée et de sortie pour les traiter.

Généralement, les données que l'utilisateur entre dans le système via une console de commande, une interface utilisateur graphique ou un fichier texte est créée sous la forme de chaînes que nous devons plus tard convertir en entiers, doubles, flotteurs, etc. Afin de les traiter.

Dans ce Indice de linux Article, nous allons vous montrer comment utiliser le atof () fonction pour convertir les chaînes en leur valeur numérique de Float Point ou Double Type.

Nous allons examiner bref la théorie de cette fonction, les arguments d'entrée et de sortie et les types de données qu'il accepte. Ensuite, en utilisant des exemples pratiques avec des fragments de code et des images, nous implémenterons l'utilisation du atof () fonction dans divers cas.

ATOF () Fonction Syntaxe dans le langage C

double atof (const char * str);

ATOF () Description de la fonction dans le langage C

Pour l'expression suivante, le atof () La fonction convertit la chaîne «STR» de son argument d'entrée et renvoie sa valeur numérique du point de flotteur dans la sortie double, «A».

a = atof (* str);

La conversion commence par le caractère le plus significatif de la valeur et se termine par le caractère le moins significatif de la valeur, ignore les espaces et se termine lorsqu'un caractère non numérique se produit. Dans les cas où la conversion n'est pas possible en raison de plusieurs cas, comme si la chaîne qui est envoyée dans l'argument d'entrée ne contient pas les caractères numériques, atof () Renvoie 0 comme le résultat de «A».

Ces fonctions de conversion sont parmi celles qui sont incluses dans la bibliothèque standard. Nous devons inclure le «stdlib.H ”en-tête dans notre".c "ou".Fichiers H ”par la ligne suivante avant de les utiliser:

#inclure

Une fois le «stdlib.L'en-tête h ”est inclus, nous pouvons utiliser atof () et les fonctions qu'il contient.

Ensuite, nous verrons quelques exemples pratiques où nous implémentons cette fonction.

Comment convertir une chaîne en valeur numérique en utilisant la fonction atof () dans le langage C

Dans cet exemple, nous verrons comment utiliser le atof () fonction pour convertir une chaîne en une valeur numérique. Pour ce faire, nous créons la chaîne «Str» avec la chaîne qui représente la racine carrée de 2 et la variable «A» où nous stockons le résultat numérique de la conversion.

Pour convertir la chaîne en sa valeur numérique, nous appelons le atof () fonction et passez le Str chaîne comme argument d'entrée.

L'extrait de code suivant montre la conversion correcte d'une chaîne en une valeur numérique. La valeur convertie est stockée dans le double «A»:

#inclure
#inclure
vide main ()

Char Str [20] = "1.4142 ";
Double A;
a = atof (str);

De cette façon, avec le atof () Fonction, nous avons la valeur entrée en tant que chaîne au format de point flottante en double type pour pouvoir le traiter avec les différentes fonctions mathématiques que nous avons dans la langue C.

Une fois que nous avons notre code prêt, nous le compilons et l'exécutons dans la console Linux avec la ligne de commande suivante:

~ $ DOCUMENTS GCC / ATOF_EX1.c -o atof_1
~ $ ./ atof_1

L'image suivante montre la compilation de ce code:

La fonction atof () avec des caractères non nucères dans sa chaîne d'entrée

La fonction atof () accepte uniquement les caractères numériques et un point décimal pour la conversion. Dans les cas où aucun de ces caractères n'est présent dans votre chaîne d'entrée ou seul un point décimal n'est trouvé sans aucun caractères numériques, atof () Renvoie 0, comme indiqué dans l'exemple suivant:

#inclure
#inclure
vide main ()

Char Str [20] = "Hello World";
Double A;
a = atof (str);
printf ("a =% f", a);

La figure suivante montre les résultats d'une chaîne d'entrée qui contient les caractères alphabétiques ou non nucères:

Espace blanc dans la chaîne d'entrée de la fonction atof () dans le langage C

Lorsque cette fonction est appelée, atof () ignore les espaces qu'il trouve avant le premier caractère numérique de la chaîne. Quand il trouve un caractère numérique, il commence à se convertir du caractère le plus significatif au caractère le moins significatif. La conversion s'arrête et la fonction revient lorsqu'elle trouve un caractère non nucère, que ce soit une lettre ou un espace blanc.

#inclure
#inclure
vide main ()

char Str [20] = "12345";
Double A;
a = atof (str);
printf ("a =% f", a);

L'image suivante montre comment l'espace est ignoré par atof ():

Conclusion

Dans ce Indice de linux Article, nous avons montré comment utiliser le atof () fonction qui est l'une des fonctions de la bibliothèque standard du langage C pour convertir les variables d'un type de données à un autre. Nous avons examiné la partie théorique de cette fonction et les types de données acceptées dans ses entrées et sorties. Nous vous avons également montré, avec des exemples de travail, sur la façon d'implémenter cette fonction et son comportement avec différents caractères dans votre chaîne d'entrée. Nous espérons que cet article vous sera utile. Pour plus d'articles et de conseils comme celui-ci, utilisez le moteur de recherche sur notre Indice de linux site Internet.