atoi
, , _atoi_l
_wtoi
, ,_wtoi_l
Convertissent une chaîne en entier.
Syntaxe
int atoi(
const char *str
);
int _wtoi(
const wchar_t *str
);
int _atoi_l(
const char *str,
_locale_t locale
);
int _wtoi_l(
const wchar_t *str,
_locale_t locale
);
Paramètres
str
Chaîne à convertir.
locale
Paramètres régionaux à utiliser.
Valeur retournée
Chaque fonction retourne la valeur int
produite en interprétant les caractères d’entrée en tant que nombre. La valeur de retour est 0 pour atoi
et _wtoi
, si l’entrée ne peut pas être convertie en valeur de ce type.
Lorsque les fonctions dépassent les valeurs intégrales négatives volumineuses, LONG_MIN
sont retournées. atoi
et _wtoi
retournent INT_MAX
et INT_MIN
dans ces conditions. Dans tous les cas hors limites, errno
est défini sur ERANGE
. Si le paramètre passé est NULL
, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à se poursuivre, ces fonctions définissent errno
avec la valeur EINVAL
et retournent 0.
Notes
Ces fonctions convertissent une chaîne de caractères en une valeur entière (atoi
et _wtoi
). La chaîne d’entrée est une séquence de caractères qui peut être interprétée comme une valeur numérique du type spécifié. La fonction cesse de lire la chaîne d’entrée au premier caractère qu’elle ne peut pas reconnaître dans le cadre d’un nombre. Ce caractère peut être le caractère Null ('\0' ou L'\0') terminant la chaîne.
L’argument str
de atoi
et _wtoi
prend la forme suivante :
[
whitespace
] [] [] [sign
digits
]
Un whitespace
espace ou des caractères de tabulation, qui sont ignorés, sign
est plus (+) ou moins (-) et digits
est un ou plusieurs chiffres.
Les versions de ces fonctions avec le suffixe _l
sont identiques, sauf qu'elles utilisent les paramètres régionaux passés au lieu des paramètres régionaux actuels. Pour plus d’informations, consultez Locale.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Mappages de routines de texte générique
Routine TCHAR.H |
_UNICODE et _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tstoi |
atoi |
atoi |
_wtoi |
_ttoi |
atoi |
atoi |
_wtoi |
Spécifications
Routines | En-tête requis |
---|---|
atoi |
<stdlib.h> |
_atoi_l , , _wtoi _wtoi_l |
<stdlib.h> ou <wchar.h> |
Exemple
Ce programme montre comment les nombres stockés sous forme de chaînes peuvent être convertis en valeurs numériques à l’aide des fonctions atoi
.
// crt_atoi.c
// This program shows how numbers
// stored as strings can be converted to
// numeric values using the atoi functions.
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
int main( void )
{
char *str = NULL;
int value = 0;
// An example of the atoi function.
str = " -2309 ";
value = atoi( str );
printf( "Function: atoi( \"%s\" ) = %d\n", str, value );
// Another example of the atoi function.
str = "31412764";
value = atoi( str );
printf( "Function: atoi( \"%s\" ) = %d\n", str, value );
// Another example of the atoi function
// with an overflow condition occurring.
str = "3336402735171707160320";
value = atoi( str );
printf( "Function: atoi( \"%s\" ) = %d\n", str, value );
if (errno == ERANGE)
{
printf("Overflow condition occurred.\n");
}
}
Function: atoi( " -2309 " ) = -2309
Function: atoi( "31412764" ) = 31412764
Function: atoi( "3336402735171707160320" ) = 2147483647
Overflow condition occurred.
Voir aussi
Conversion de données
Prise en charge des fonctions mathématiques et à virgule flottante
Paramètres régionaux
_ecvt
_fcvt
_gcvt
setlocale
, _wsetlocale
_atodbl
, , _atodbl_l
, _atoldbl_l
_atoldbl
, , _atoflt
_atoflt_l