C++ の std::stoi 関数

stoi() は、文字列を整数に変換する標準ライブラリ関数です。 C++ プログラマは、string to integer を表す関数を利用して、文字列から整数を取得します。さらに、stoi() 関数は、文字列から末尾の文字などの他のコンポーネントを削除できます。

構文:

int stoi (string s, size_t* position = 0, int base = 10) 

パラメーター:

  1. 変換する必要がある文字列は最初のパラメータです。
  2. 読み取られた文字数を追跡するために使用される整数の場所。このシナリオでは、このパラメーターが null ポインターの場合は使用されません。
  3. 3番目と最後のパラメータはbaseです。これが 0 の場合、シーケンスの形式によって使用される基数が決まります。引数が渡されない場合は、基数 10 (10 進数) が使用されます。

例:

入力: 1プログラマーなし。

出力: 1

入力 : HelloWorld54;

出力 : 「std::invalid_argument」のインスタンスをスローした後に呼び出される終了

説明: 最初の文字が整数でない場合は stoi() 関数が終了するため、これによりエラーが発生します。

入力 : キーボードが 1 つあります。

出力 : 「std::invalid_argument」のインスタンスをスローした後に呼び出される終了

what(): 立っています

戻り値の型: に渡される引数の文字列値。 立っている() 関数は整数として返されます。

使い方?

文字列を引数として受け取る stoi() 関数は、文字列の整数部分を整数型に変換できます。最初の非整数要素または文字列の末尾までの整数値のみが考慮されます。

以下のプログラムを実行すると、実行時にエラーが発生します。これは、stoi() 関数が非整数文字または空白文字に遭遇すると文字列の走査を停止するためです。最初の文字が整数以外の場合、stoi() 関数は終了します。

例:

C++




// C++ Program to convert> // string into integer> // Using stoi function> // Error occurred> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> > string s => 'GeeksForGeeks 1'> ;> > // calling stoi() passing string as parameter.> > int> n = stoi(s);> > cout < < n;> }>

terminate called after throwing an instance of 'std::invalid_argument' what(): stoi 

stoi() 関数が 1 の前に空白文字を検出したため、エラーが発生します。

例:

C++




// C++ Program to convert> // string into integer> // Using stoi> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> > string str => '2009, techcodeview.com_founded'> ;> > string str1 => '0x6C1'> ;> > string str2 => '-10010010101'> ;> > // Calling stoi() for all strings.> > int> num = stoi(str);> > int> num_hex = stoi(str1, nullptr, 16);> > int> num_bin = stoi(str2, nullptr, 2);> > // printing converted values> > cout < < str < <> ': '> < < num < < endl;> > cout < < str1 < <> ': '> < < num_hex < < endl;> > cout < < str2 < <> ': '> < < num_bin < < endl;> > return> 0;> }>

出力

2009, techcodeview.com_founded: 2009 0x6C1: 1729 -10010010101: -1173 

時間計算量: O(n) // n は文字列の長さです。

補助スペース: ○(1)