C++ String::stoll() 函式



C++ 的std::string::stoll()函式用於將字串轉換為長長整數。它用於分析字串中的數值並處理大整數。此函式有兩個可選引數:pos(指定字串中的起始位置)和base(定義數字基數,例如十進位制或十六進位制)。

語法

以下是 std::string::stoll() 函式的語法。

long long stoll (const string&  str, size_t* idx = 0, int base = 10);long long stoll (const wstring& str, size_t* idx = 0, int base = 10);

引數

  • str − 它表示包含整數表示形式的字串物件。
  • idx − 它表示指向 size_t 型別物件的指標,該函式將該指標的值設定為 str 中數值後下一個字元的位置。
  • base − 它表示確定有效字元及其解釋的數字基數。

返回值

它將字串作為值返回到長長整數中。

示例 1

以下是使用 C++ 將字串轉換為長長整數的基本示例。

#include <iostream>
#include <string>
using namespace std;
int main() {
   string str = "9223372036854775807";
   long long int number = stoll(str);
   cout << number << endl;
   return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出。

9223372036854775807

示例 2

在此示例中,我們傳遞一個十六進位制字串以將其轉換為長整數。

#include <iostream>
#include <string>
using namespace std;
int main() {
   string hexStr = "7FFFFFFFFFFFFFFF";
   long long number = stoll(hexStr, nullptr, 16);
   cout << number << endl;
   return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出。

 9223372036854775807

示例 3

在此程式中,我們將命令列引數轉換為長長整數。

#include <iostream>
#include <string>
using namespace std;
int main(int argc, char * argv[]) {
   if (argc != 2) {
      cerr << "Usage: " << argv[0] << " <number>" << endl;
      return 1;
   }
   try {
      string argStr = argv[1];
      long long number = stoll(argStr);
      cout << "The command-line argument \"" << argStr << "\" converted to long long is " << number << endl;
   } catch (const std::exception & e) {
      cerr << "Error: " << e.what() << endl;
      return 1;
   }
   return 0;
}

輸出

以下是以上程式碼的輸出。

Usage: main <number>         
string.htm
廣告