STD:STORE()和STD::StLL()函数在C++中的应用

  1. std::stol() :此函数将函数调用中作为参数提供的字符串转换为long int。它解析str,将其内容解释为指定基的整数,并以long int类型的值返回。

    语法:

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

    参数: 该函数接受以下三个参数:

    • str: 它指定一个以整数表示的字符串对象。
    • idx :它指定一个指向size_t类型对象的指针,该对象的值由函数设置为数字值之后str中下一个字符的位置。参数也可以是空指针,在这种情况下不使用它。
    • 基础 :它指定数字基数,以确定解释字符的数字系统。如果基数为0,则要使用的基数由序列中的格式确定。默认值为10。

    返回值: 该函数将转换后的整数作为long int类型的值返回。

    // CPP code for illustration
    // of stol() function.
    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
    // converting decimal number.
    string dec_num = "9876543210" ;
    cout << "dec_num = " <<
    stol(dec_num, nullptr, 10) << "" ;
    // converting hexadecimal number.
    string hex_num = "FFFFFF" ;
    cout << "hex_num = " <<
    stol(hex_num, nullptr, 16) << "" ;
    // converting binary number.
    string binary_num = "1111111" ;
    cout << "binary_num = " <<
    stol(binary_num, nullptr, 2) << "" ;
    return 0;
    }

    
    

    输出:

    dec_num = 9876543210
    hex_num = 16777215
    binary_num = 127
    

  2. std::stoll(): 此函数将函数调用中作为参数提供的字符串转换为long long int。它解析str,将其内容解释为指定基的整数,并以long long int类型的值返回。

    语法:

    long long int stoll (const string&  str, size_t* idx = 0, int base = 10)
      参数: 该函数接受以下三个参数:

    • str: 此参数指定以整数表示的字符串对象。
    • idx: 此参数指定指向size_t类型对象的指针,该对象的值由函数设置为数值后str中下一个字符的位置。此参数也可以是空指针,在这种情况下,不使用它。
    • 基数: 此参数指定用于确定解释字符的数字系统的数字基数。如果基数为0,则其使用的基数由序列中的格式确定。默认基数为10。

    返回值: 该函数将转换后的整数作为long int类型的值返回。

    // CPP code for illustration
    // of stoll() function.
    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
    // converting decimal number.
    string dec_num = "9876543210" ;
    cout << "dec_num = " <<
    stoll(dec_num, nullptr, 10) << " " ;
    // converting hexadecimal number.
    string hex_num = "FFFFFF" ;
    cout << "hex_num = " <<
    stoll(hex_num, nullptr, 16) << "" ;
    // converting binary number.
    string binary_num = "1111111" ;
    cout << "binary_num = " <<
    stoll(binary_num, nullptr, 2) << "" ;
    return 0;
    }

    
    

    输出:

    dec_num = 9876543210
     hex_num = 16777215
    binary_num = 127
    

错误和例外: 如果无法执行转换,则 无效的_参数 异常被抛出。如果读取的值超出了可表示值的范围长整型,则 无效的_参数 或者 超出范围 异常被抛出。

// CPP code for illustration of stoll()
// function when invalid_argument
// exception is thrown.
#include <bits/stdc++.h>
using namespace std;
int main() {
// An invalid input string that has no
// integer part.
string invalid_num = "abcf$#@de" ;
// stoll() throws invalid_argument exception
// when conversion process fails.
try {
cout << stoll(invalid_num) << "" ;
}
// catch invalid_argument exception.
catch ( const std::invalid_argument){
cerr << "Invalid argument" << "" ;
}
return 0;
}


输出:

Runtime Errors:
Invalid argument
© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞7 分享