Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menukar Digit Tunggal daripada Rentetan kepada Integer dalam C/C dengan Cekap?

Bagaimanakah Saya Boleh Menukar Digit Tunggal daripada Rentetan kepada Integer dalam C/C dengan Cekap?

Susan Sarandon
Lepaskan: 2024-12-17 04:30:25
asal
939 orang telah melayarinya

How Can I Efficiently Convert Single Digits from a String to Integers in C/C  ?

Menukar Aksara Tunggal kepada Nilai Integer

Dalam pengaturcaraan, anda sering menghadapi situasi di mana rentetan digit perlu ditukar kepada integer individu. Walaupun mengakses setiap aksara mengikut indeks adalah mudah, menukar aksara tersebut kepada integer mungkin kelihatan mencabar.

Fungsi atoi() yang popular memerlukan hujah rentetan, yang membawa kepada idea untuk menukar setiap aksara kepada rentetan dan kemudian menggunakan atoi (). Walau bagaimanapun, terdapat pendekatan yang lebih langsung dan cekap.

Kuncinya ialah mengenali bahawa pengekodan aksara untuk digit adalah berurutan. Dalam ASCII, UTF-x dan kebanyakan sistem pengekodan lain, '0' mempunyai pengekodan 48, manakala '9' mempunyai pengekodan 57.

Memanfaatkan ini, anda boleh mengekstrak nilai integer digit dengan menolak aksara daripada '0' atau 48. Contohnya:

char c = '1';
int i = c - '0'; // i is now equal to 1, not '1'
Salin selepas log masuk

Ini bersamaan kepada:

char c = '1';
int i = c - 48; // i is now equal to 1, not '1'
Salin selepas log masuk

Walaupun kedua-dua ungkapan menghasilkan hasil yang sama, pilihan pertama (c - '0') biasanya dianggap lebih mudah dibaca.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Digit Tunggal daripada Rentetan kepada Integer dalam C/C dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan