Cara untuk mengkonversi string ke integer dalam C?
Saya mencoba untuk mencari tahu apakah ada alternatif cara untuk mengkonversi string ke integer dalam C.
Saya secara teratur pola berikut dalam kode saya.
char s[] = "45";
int num = atoi(s);
Jadi, apakah ada cara yang lebih baik atau cara lain?
235
11
Ada
strtol
yang lebih baik IMO. Juga saya telah mengambil keinginan distrtonum
, jadi gunakan ini jika anda memiliki itu (tapi ingat itu's tidak portable):EDIT
Anda juga mungkin tertarik dalam
strtoumax
danstrtoimax
yang merupakan fungsi standar di C99. Misalnya anda bisa mengatakan:Pokoknya, tinggal jauh dari
atoi
:Don't menggunakan fungsi dari
ato...
kelompok. Ini yang rusak dan hampir tidak berguna. Cukup solusi yang lebih baik akan menggunakansscanf
, meskipun tidak sempurna.Untuk mengkonversi string ke integer, fungsi dari
strto...
kelompok harus digunakan. Dalam kasus tertentu anda akanstrtol
fungsi.Kuat C89
strtol
berbasis solusiDengan:
atoi
keluarga)strtol
(misalnya tidak ada ruang kosong atau trailing sampah karakter)GitHub upstream.
Berdasarkan pada: https://stackoverflow.com/a/6154614/895245
Anda dapat kode sedikit atoi() untuk memulai:
Hanya ingin berbagi solusi untuk unsigned long juga.
Anda selalu dapat memutar anda sendiri!
Fungsi ini akan membantu anda
Ok, saya punya masalah yang sama.Saya datang dengan solusi ini.Ini bekerja untuk saya yang terbaik.Aku mencoba atoi() tetapi tidak't bekerja dengan baik bagi saya.Jadi di sini adalah solusi saya:
Dalam C++, anda dapat menggunakan fungsi seperti:
Hal ini dapat membantu anda untuk mengkonversi string ke tipe seperti float, int, double...
Ya, anda dapat menyimpan bilangan bulat secara langsung:
Jika anda harus mengurai string,
atoi
ataustrol
akan memenangkan "terpendek jumlah kode" kontes.