Maison >développement back-end >C++ >Implémenter la fonction atoi() de manière récursive en C++

Implémenter la fonction atoi() de manière récursive en C++

PHPz
PHPzavant
2023-08-27 13:57:09834parcourir

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

Exemple :

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.

La méthode utilisée dans le programme ci-dessous est la suivante

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.

Exemple

#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;
}

Output

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer