Rumah > pembangunan bahagian belakang > C++ > Laksanakan fungsi atoi() secara rekursif dalam C++

Laksanakan fungsi atoi() secara rekursif dalam C++

PHPz
Lepaskan: 2023-08-27 13:57:09
ke hadapan
836 orang telah melayarinya

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).

Contoh:

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.

Kaedah yang digunakan dalam atur cara di bawah adalah seperti berikut

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.

Contoh

#include <bits/stdc++.h>
using namespace std;
int recurAtoi(char *str, int len){
   if (len == 1){
      return *str - &#39;0&#39;;
   }
   int temp=10*recurAtoi(str,len-1);
   temp=temp+str[len-1]-&#39;0&#39;;
   return (temp);
}
int main(void){
   char Str[] = "58325";
   int length = strlen(Str);
   cout<<"Equivalent decimal :"<<recurAtoi(Str, length);
   return 0;
}
Salin selepas log masuk

Output

Jika kita menjalankan kod di atas, ia akan menghasilkan output berikut

Equivalent decimal : 58325
Salin selepas log masuk

Atas ialah kandungan terperinci Laksanakan fungsi atoi() secara rekursif dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan