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
广告