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
Libérer: 2023-08-27 13:57:09
avant
844 Les gens l'ont consulté

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;
}
Copier après la connexion

Output

Si nous exécutons le code ci-dessus, il générera la sortie suivante

Equivalent decimal : 58325
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal