Maison >développement back-end >C++ >Implémenter la fonction atoi() de manière récursive en C++
Nous obtenons une chaîne contenant des nombres. Le but est de trouver des nombres équivalents en utilisant la méthode récursive atoi(). int atoi(const char *str) Convertit l'argument de chaîne str en un entier (tapez int).
Input− Str[] = "58325"
Output− Le nombre décimal équivalent est : 58325
Explication− La chaîne contient le nombre équivalent 58325
Input − Str[ ] = "00010"
Sortie− Le nombre décimal équivalent est : 1
Explication - Cette chaîne contient le nombre équivalent 10.
Dans cette méthode, nous utilisons la fonction récursive recurAtoi() pour obtenir la chaîne d'entrée et sa longueur, pour chaque caractère, la convertir en décimal et la multiplier par 10. Ajoutez-y les résultats précédents.
Prenez la chaîne d'entrée Str[] contenant des nombres.
Utilisez strlen(Str) pour calculer sa longueur.
La fonction recurAtoi(char *str, int len) accepte les entrées et renvoie un nombre calculé à l'aide de la fonction récursive atoi().
Si la longueur est 1, renvoyez le nombre *str -'0'.
Take temp=10*recurAtoi(str,len-1).
et définissez temp=temp+str[len-1 ]-'0'.
Renvoie enfin la température.
Imprimez les résultats.
#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; }
Si nous exécutons le code ci-dessus, il générera la sortie suivante
Equivalent decimal : 58325
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!