Rumah > Artikel > pembangunan bahagian belakang > Laksanakan fungsi atoi() secara rekursif dalam C++
Kami mendapat rentetan yang mengandungi nombor. Matlamatnya adalah untuk mencari nombor setara menggunakan kaedah atoi() rekursif. int atoi(const char *str) Menukar hujah rentetan str kepada integer (jenis int).
Input− Str[] = "58325"
Output− Perpuluhan setara ialah: 58325
Penjelasan nombor bersamaan 35
Input− Str[ ] = "00010"
Output− Perpuluhan yang setara ialah: 1
Penjelasan - Rentetan ini mengandungi nombor yang setara 10.
Dalam kaedah ini kita menggunakan fungsi rekursif recurAtoi() untuk mendapatkan rentetan input dan panjangnya, untuk setiap aksara menukarnya kepada perpuluhan dan darab dengan 10. Tambahkan hasil sebelumnya padanya.
Ambil rentetan input Str[] yang mengandungi nombor.
Gunakan strlen(Str) untuk mengira panjangnya.
Fungsi recurAtoi(char *str, int len) menerima input dan mengembalikan nombor yang dikira menggunakan fungsi atoi() rekursif.
Jika panjangnya 1, kembalikan nombor *str -'0'.
Ambil suhu=10*recurAtoi(str,len-1).
dan tetapkan temp=temp+str[len-1 ]-'0'.
Akhirnya mengembalikan suhu.
Cetak hasilnya.
#include <bits/stdc++.h> using namespace std; int recurAtoi(char *str, int len){ if (len == 1){ return *str - '0'; } int temp=10*recurAtoi(str,len-1); temp=temp+str[len-1]-'0'; return (temp); } int main(void){ char Str[] = "58325"; int length = strlen(Str); cout<<"Equivalent decimal :"<<recurAtoi(Str, length); return 0; }
Jika kita menjalankan kod di atas, ia akan menghasilkan output berikut
Equivalent decimal : 58325
Atas ialah kandungan terperinci Laksanakan fungsi atoi() secara rekursif dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!