atoi
, , _atoi_l
_wtoi
,_wtoi_l
Mengonversi string menjadi bilangan bulat.
Sintaks
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
);
Parameter
str
String yang akan dikonversi.
locale
Lokal untuk digunakan.
Nilai hasil
Setiap fungsi mengembalikan nilai yang int
dihasilkan dengan menginterpretasikan karakter input sebagai angka. Nilai yang dikembalikan adalah 0 untuk atoi
dan _wtoi
, jika input tidak dapat dikonversi ke nilai jenis tersebut.
Ketika fungsi meluap dengan nilai integral negatif besar, LONG_MIN
dikembalikan. atoi
dan _wtoi
kembali INT_MAX
dan INT_MIN
pada kondisi ini. Dalam semua kasus di luar rentang, errno
diatur ke ERANGE
. Jika parameter yang diteruskan adalah NULL
, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi-fungsi ini diatur errno
ke EINVAL
dan mengembalikan 0.
Keterangan
Fungsi-fungsi ini mengonversi string karakter menjadi nilai bilangan bulat (atoi
dan _wtoi
). String input adalah urutan karakter yang dapat ditafsirkan sebagai nilai numerik dari jenis yang ditentukan. Fungsi berhenti membaca string input pada karakter pertama yang tidak dapat dikenali sebagai bagian dari angka. Karakter ini mungkin karakter null ('\0' atau L'\0') yang mengakhiri string.
Argumen str
ke atoi
dan _wtoi
memiliki formulir berikut:
[
whitespace
] [sign
] [digits
]
whitespace
Terdiri dari karakter spasi atau tab, yang diabaikan; sign
adalah plus (+) atau minus (-); dan digits
adalah satu atau beberapa digit.
Versi fungsi-fungsi ini dengan _l
akhiran identik kecuali mereka menggunakan parameter lokal yang diteruskan alih-alih lokal saat ini. Untuk informasi selengkapnya, lihat Lokal.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Pemetaan rutin teks generik
TCHAR.H Rutin |
_UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_tstoi |
atoi |
atoi |
_wtoi |
_ttoi |
atoi |
atoi |
_wtoi |
Persyaratan
Rutinitas | Header yang diperlukan |
---|---|
atoi |
<stdlib.h> |
_atoi_l , , _wtoi _wtoi_l |
<stdlib.h> atau <wchar.h> |
Contoh
Program ini menunjukkan bagaimana angka yang disimpan sebagai string dapat dikonversi ke nilai numerik menggunakan atoi
fungsi.
// 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.
Lihat juga
Konversi data
Dukungan matematika dan titik mengambang
Lokal
_ecvt
_fcvt
_gcvt
setlocale
, _wsetlocale
_atodbl
, , _atodbl_l
_atoldbl
, _atoldbl_l
, , _atoflt
,_atoflt_l