Heim >Backend-Entwicklung >C++ >Implementieren Sie die Funktion atoi() rekursiv in C++
Wir erhalten eine Zeichenfolge mit Zahlen. Ziel ist es, mit der rekursiven Methode atoi() äquivalente Zahlen zu finden. int atoi(const char *str) Konvertiert das String-Argument str in eine Ganzzahl (Typ int).
Eingabe− Str[] = "58325"
Ausgabe− Die entsprechende Dezimalzahl ist: 58325
Erläuterung− Die Zeichenfolge enthält die entsprechende Zahl. 58325
Eingabe − Str[ ] = "00010"
Ausgabe− Die entsprechende Dezimalzahl ist: 1
Erläuterung – Diese Zeichenfolge enthält die entsprechende Zahl 10.
In dieser Methode verwenden wir die rekursive Funktion recurAtoi(), um die Eingabezeichenfolge und ihre Länge abzurufen, sie für jedes Zeichen in eine Dezimalzahl umzuwandeln und mit 10 zu multiplizieren. Fügen Sie die vorherigen Ergebnisse hinzu.
Nehmen Sie die Eingabezeichenfolge Str[], die Zahlen enthält.
Verwenden Sie strlen(Str), um seine Länge zu berechnen.
Funktion recurAtoi(char *str, int len) akzeptiert Eingaben und gibt eine Zahl zurück, die mit der rekursiven Funktion atoi() berechnet wurde.
Wenn die Länge 1 ist, wird die Zahl *str -'0' zurückgegeben.
Take temp=10*recurAtoi(str,len-1).
und setze temp=temp+str[len-1 ]-'0'.
Endlich kehrt die Temperatur zurück.
Drucken Sie die Ergebnisse aus.
#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; }
Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert
Equivalent decimal : 58325
Das obige ist der detaillierte Inhalt vonImplementieren Sie die Funktion atoi() rekursiv in C++. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!