strtol
, wcstol
, _strtol_l
, _wcstol_l
Mengonversi string menjadi long
nilai bilangan bulat.
Sintaks
long strtol(
const char *string,
char **end_ptr,
int base
);
long wcstol(
const wchar_t *string,
wchar_t **end_ptr,
int base
);
long _strtol_l(
const char *string,
char **end_ptr,
int base,
_locale_t locale
);
long _wcstol_l(
const wchar_t *string,
wchar_t **end_ptr,
int base,
_locale_t locale
);
Parameter
string
String yang dihentikan null untuk dikonversi.
end_ptr
Parameter output, diatur untuk menunjuk ke karakter setelah karakter terakhir yang ditafsirkan. Diabaikan, jika NULL
.
base
Basis angka yang akan digunakan.
locale
Lokal untuk digunakan.
Nilai hasil
strtol
, , wcstol
_strtol_l
, dan _wcstol_l
mengembalikan nilai yang diwakili dalam string
. Mereka mengembalikan 0 jika tidak ada konversi yang dimungkinkan. Ketika representasi akan menyebabkan luapan, mereka kembali LONG_MAX
atau LONG_MIN
.
errno
diatur ke ERANGE
jika luapan atau aliran bawah terjadi. Ini diatur ke EINVAL
jika string
adalah NULL
. Atau, jika base
nonzero dan kurang dari 2, atau lebih besar dari 36. Untuk informasi selengkapnya tentang ERANGE
, EINVAL
, dan kode pengembalian lainnya, lihat errno
, , _doserrno
_sys_errlist
, dan _sys_nerr
.
Keterangan
Fungsi strtol
, wcstol
, _strtol_l
, dan _wcstol_l
dikonversi string
ke long
. Mereka berhenti membaca string
pada karakter pertama yang tidak dikenali sebagai bagian dari angka. Ini mungkin karakter terminating-null, atau karakter alfanumerik pertama lebih besar dari atau sama dengan base
.
wcstol
dan _wcstol_l
merupakan versi karakter luas dari strtol
dan _strtol_l
. Argumen mereka string
adalah string karakter lebar. Fungsi-fungsi ini berulah identik dengan strtol
dan _strtol_l
sebaliknya. Pengaturan kategori lokal LC_NUMERIC
menentukan pengenalan karakter radix (penanda pecahan atau titik desimal) di string
. Fungsi strtol
dan wcstol
gunakan lokal saat ini. _strtol_l
dan _wcstol_l
gunakan lokal yang diteruskan sebagai gantinya. Untuk informasi selengkapnya, lihat [setlocale
] dan Lokal.
Ketika end_ptr
adalah NULL
, itu diabaikan. Jika tidak, penunjuk ke karakter yang menghentikan pemindaian disimpan di lokasi yang ditujukkan oleh end_ptr
. Tidak ada konversi yang dimungkinkan jika tidak ada digit yang valid yang ditemukan, atau basis yang tidak valid ditentukan. Nilai string
kemudian disimpan di lokasi yang ditujukkan oleh end_ptr
.
strtol
string
mengharapkan untuk menunjuk ke string formulir berikut:
[
whitespace
] [{+
|-
}] [0
[{x
|X
}]] [alphanumerics
]
Kurung siku ([ ]
) mengelilingi elemen opsional. Kurung kurawal dan bilah vertikal ({ | }
) mengelilingi alternatif untuk satu elemen. whitespace
mungkin terdiri dari karakter spasi dan tab, yang diabaikan. alphanumerics
adalah digit desimal atau huruf 'a'
melalui 'z'
(atau 'A'
melalui 'Z'
). Karakter pertama yang tidak cocok dengan formulir ini menghentikan pemindaian. Jika base
antara 2 dan 36, maka digunakan sebagai basis angka. Jika base
adalah 0
, karakter awal string yang ditujukkan oleh string
digunakan untuk menentukan basis. Jika karakter pertama adalah 0
, dan karakter kedua bukan 'x'
atau 'X'
, string ditafsirkan sebagai bilangan bulat oktal. Jika karakter pertama adalah '0'
dan karakter kedua adalah 'x'
atau 'X'
, string ditafsirkan sebagai bilangan bulat heksadesimal. Jika karakter pertama adalah '1'
melalui '9'
, string ditafsirkan sebagai bilangan bulat desimal. Huruf 'a'
melalui 'z'
(atau 'A'
melalui 'Z'
) diberi nilai 10 hingga 35. Pemindaian hanya memungkinkan huruf yang nilainya kurang dari base
. Karakter pertama di luar rentang dasar menghentikan pemindaian. Misalnya, misalkan string
dimulai dengan "01"
. Jika base
adalah 0
, pemindai mengasumsikan itu adalah bilangan bulat oktal. Karakter '8'
atau '9'
menghentikan pemindaian.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Pemetaan rutin teks generik
TCHAR. Rutinitas H | _UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_tcstol |
strtol |
strtol |
wcstol |
_tcstol_l |
_strtol_l |
_strtol_l |
_wcstol_l |
Persyaratan
Rutin | Header yang diperlukan |
---|---|
strtol |
<stdlib.h> |
wcstol |
<stdlib.h> atau <wchar.h> |
_strtol_l |
<stdlib.h> |
_wcstol_l |
<stdlib.h> atau <wchar.h> |
Fungsi _strtol_l
dan _wcstol_l
khusus Microsoft, bukan bagian dari pustaka Standard C. Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
Lihat contoh untuk strtod
.
Baca juga
Konversi data
Lokal
localeconv
setlocale
, _wsetlocale
String ke fungsi nilai numerik
strtod
, _strtod_l
, wcstod
, _wcstod_l
strtoll
, _strtoll_l
, wcstoll
, _wcstoll_l
strtoul
, _strtoul_l
, wcstoul
, _wcstoul_l
atof
, _atof_l
, _wtof
, _wtof_l
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk