Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Keterangan
Setiap fungsi dalam strto* keluarga mengonversi string null-terminated menjadi nilai numerik. Fungsi yang tersedia tercantum dalam tabel berikut.
| Fungsi | Deskripsi |
|---|---|
strtod |
Mengonversi string menjadi nilai titik mengambang presisi ganda |
strtol |
Mengonversi string menjadi bilangan bulat panjang |
strtoul |
Mengonversi string menjadi bilangan bulat panjang yang tidak ditandatangani |
_strtoi64 |
Mengonversi string menjadi bilangan bulat 64-bit __int64 |
_strtoui64 |
Mengonversi string menjadi bilangan bulat 64-bit __int64 yang tidak ditandatangani |
wcstod, , wcstol, dan _wcstoi64 masing-masing adalah versi karakter lebar dari strtod, , strtolstrtoul, dan _strtoi64. wcstoul Argumen string untuk masing-masing fungsi karakter lebar ini adalah string karakter lebar; setiap fungsi berkinerja identik dengan rekan karakter byte tunggalnya jika tidak.
Fungsi ini strtod mengambil dua argumen: yang pertama adalah string input, dan yang kedua penunjuk ke karakter yang mengakhiri proses konversi. strtol, strtoul, _strtoi64 dan _strtoui64 ambil argumen ketiga sebagai basis angka yang akan digunakan dalam proses konversi.
String input adalah urutan karakter yang dapat ditafsirkan sebagai nilai numerik dari jenis yang ditentukan. Setiap fungsi berhenti membaca string pada karakter pertama yang tidak dapat dikenali sebagai bagian dari angka. Karakter ini mungkin karakter null yang mengakhiri. Untuk strtol, , _strtoi64strtoul, dan _strtoui64, karakter yang mengakhiri ini juga dapat menjadi karakter numerik pertama yang lebih besar dari atau sama dengan basis angka yang disediakan pengguna.
Jika penunjuk yang disediakan pengguna ke karakter akhir konversi tidak diatur ke NULL atau nullptr pada waktu panggilan, penunjuk ke karakter yang menghentikan pemindaian akan disimpan di sana sebagai gantinya. Jika tidak ada konversi yang dapat dilakukan (tidak ada digit valid yang ditemukan atau basis yang tidak valid ditentukan), nilai penunjuk string disimpan di alamat tersebut.
strtod mengharapkan string formulir berikut:
[whitespace] [sign] [digits] [.digits] [{deD | | E | }[sign]]digits
whitespace Mungkin terdiri dari karakter spasi atau tab, yang diabaikan; sign adalah plus (+) atau minus (-); dan digits adalah satu atau beberapa digit desimal. Jika tidak ada digit yang muncul sebelum karakter radiks, setidaknya satu harus muncul setelah karakter radiks. Digit desimal dapat diikuti oleh eksponen, yang terdiri dari huruf pengantar (d, , D, eatau E) dan bilangan bulat yang ditandatangani secara opsional. Jika tidak ada bagian eksponen atau karakter radiks yang muncul, karakter radiks diasumsikan untuk mengikuti digit terakhir dalam string. Karakter pertama yang tidak cocok dengan formulir ini menghentikan pemindaian.
Fungsi strtol, , _strtoi64strtoul, dan _strtoui64 mengharapkan string dari formulir berikut:
[whitespace] [{+ | -}] [0 [{ x | X }]] [digits]
Jika argumen dasar adalah antara 2 dan 36, maka argumen tersebut digunakan sebagai basis angka. Jika 0, karakter awal yang dirujuk oleh pointer akhir konversi digunakan untuk menentukan basis. Jika karakter pertama adalah 0 dan karakter kedua bukan 'x' atau 'X', string ditafsirkan sebagai bilangan bulat oktal; jika tidak, itu ditafsirkan sebagai angka desimal. Jika karakter pertama adalah '0' dan karakter kedua adalah 'x' atau 'X', string ditafsirkan sebagai bilangan bulat heksadesimal. Jika karakter pertama adalah '1' hingga '9', string ditafsirkan sebagai bilangan bulat desimal. Huruf 'a' melalui 'z' (atau 'A' hingga 'Z') diberi nilai 10 hingga 35; hanya huruf yang nilai yang ditetapkan kurang dari base yang diizinkan. strtoul dan _strtoui64 mengizinkan awalan tanda plus (+) atau minus (-) ; tanda minus terkemuka menunjukkan bahwa nilai pengembalian dinegasikan.
Nilai output dipengaruhi oleh pengaturan LC_NUMERIC pengaturan kategori lokal. Untuk informasi selengkapnya, lihat setlocale . Versi fungsi-fungsi ini tanpa _l akhiran menggunakan lokal saat ini untuk perilaku tergantung lokal ini; versi dengan _l akhiran identik kecuali bahwa mereka menggunakan parameter lokal yang diteruskan sebagai gantinya.
Ketika nilai yang dikembalikan oleh fungsi-fungsi ini akan menyebabkan luapan atau aliran bawah, atau ketika konversi tidak dimungkinkan, nilai kasus khusus dikembalikan seperti yang ditunjukkan:
| Fungsi | Kondisi | Nilai yang dikembalikan |
|---|---|---|
strtod |
Luapan | +/- HUGE_VAL |
strtod |
Underflow atau tidak ada konversi | 0 |
strtol |
+ Luapan | LONG_MAX |
strtol |
-Tumpah | LONG_MIN |
strtol |
Underflow atau tidak ada konversi | 0 |
_strtoi64 |
+ Luapan | _I64_MAX |
_strtoi64 |
-Tumpah | _I64_MIN |
_strtoi64 |
Tidak ada konversi | 0 |
_strtoui64 |
Luapan | _UI64_MAX |
_strtoui64 |
Tidak ada konversi | 0 |
_I64_MAX, _I64_MIN, dan _UI64_MAX didefinisikan dalam <LIMITS.H>.
wcstod, , wcstolwcstoul, _wcstoi64, dan _wcstoui64 adalah versi karakter lebar dari strtod, , strtol, strtoul_strtoi64, dan _strtoui64, masing-masing; penunjuk ke argumen akhir konversi ke masing-masing fungsi karakter lebar ini adalah string karakter lebar. Jika tidak, masing-masing fungsi karakter lebar ini berulah identik dengan rekan karakter byte tunggalnya.
Lihat juga
Konversi data
Lokal
Interpretasi urutan karakter multibyte
Dukungan matematika dan titik mengambang
atof, , _atof_l_wtof,_wtof_l