ホームページ  >  記事  >  バックエンド開発  >  C++ で atoi() 関数を再帰的に実装する

C++ で atoi() 関数を再帰的に実装する

PHPz
PHPz転載
2023-08-27 13:57:09768ブラウズ

C++ で atoi() 関数を再帰的に実装する

数値を含む文字列を取得します。目標は、再帰的な atoi() メソッドを使用して同等の数値を見つけることです。 int atoi(const char *str) 文字列引数 str を整数 (int 型) に変換します。

例:

Input- Str[] = "58325"

Output- 同等の 10 進数は次のとおりです: 58325

説明- 文字列には同等の数値 58325

Input- Str[] = "00010"

出力- 10 進数は次のとおりです: 1

説明 - 文字列には同等の数値 10 が含まれます。

次のプログラムで使用するメソッドは次のとおりです。

このメソッドでは、再帰関数 recurAtoi() を使用して入力文字列とその長さを取得し、文字ごとに 10 進数に変換します。そして10を掛けます。以前の結果をそれに追加します。

  • 数値を含む入力文字列 Str[] を取得します。

  • strlen(Str) を使用して長さを計算します。

  • 関数 recurAtoi(char *str, int len) は入力を受け取り、再帰的な atoi() 関数を使用して計算された数値を返します。

  • 長さが 1 の場合、数値 *str -'0' が返されます。

  • temp=10*recurAtoi(str,len-1) とします。

  • そして、temp=temp str[len-1]-'0' を設定します。

  • 最後に温度を返します。

  • #結果を印刷します。

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

出力

上記のコードを実行すると、次の出力が生成されます

Equivalent decimal : 58325

以上がC++ で atoi() 関数を再帰的に実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。