Share via


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.

Baca juga

Konversi data
Dukungan matematika dan titik mengambang
Lokal
_ecvt
_fcvt
_gcvt
setlocale, _wsetlocale
_atodbl, , _atodbl_l_atoldbl, _atoldbl_l, , _atoflt,_atoflt_l