最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c++中stoi函數(shù)的使用小結(jié)

 更新時間:2026年02月02日 09:08:35   作者:crane_in_sky  
本文主要介紹了c++中stoi函數(shù)的使用小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

std::stoi是C++標(biāo)準(zhǔn)庫中的一個函數(shù),用于將字符串轉(zhuǎn)換為整數(shù)類型。它的全名是std::string to int,所以stoi就是string to int的縮寫。

函數(shù)原型如下:

int stoi( const std::string& str, std::size_t* pos = 0, int base = 10 );

參數(shù)解釋:

  • str:要轉(zhuǎn)換的字符串。
  • pos:可選參數(shù),表示轉(zhuǎn)換后的字符串的結(jié)束位置。如果提供了這個參數(shù),函數(shù)會將轉(zhuǎn)換后的字符串的結(jié)束位置存儲在它所指向的位置上。
  • base:可選參數(shù),用于指定字符串表示的數(shù)的進(jìn)制。默認(rèn)值是10。

函數(shù)功能: std::stoi會從字符串的開頭開始,依次讀取字符,直到遇到非數(shù)字字符或字符串結(jié)束。它將讀取到的數(shù)字字符解析為整數(shù),并返回轉(zhuǎn)換后的整數(shù)值。

如果字符串中的第一個字符是非數(shù)字字符,或者字符串為空,或者不包含任何數(shù)字字符,std::stoi會拋出一個std::invalid_argument異常。如果轉(zhuǎn)換后的整數(shù)值超出了所表示的整數(shù)類型的范圍,std::stoi會拋出一個std::out_of_range異常。

示例用法:

#include <iostream>
#include <string>

int main() {
    std::string str = "12345";
    int num = std::stoi(str);
    std::cout << num << std::endl;  // 輸出:12345
    return 0;
}

上述代碼將字符串"12345"轉(zhuǎn)換為整數(shù)12345,并輸出結(jié)果。

示例2:使用 idx 參數(shù)

#include &lt;iostream&gt;
#include &lt;string&gt;

int main() {
    std::string str = "123abc";
    std::size_t idx;
    try {
        int num = std::stoi(str, &amp;idx);
        std::cout &lt;&lt; "轉(zhuǎn)換結(jié)果: " &lt;&lt; num &lt;&lt; std::endl;
        std::cout &lt;&lt; "轉(zhuǎn)換停止位置: " &lt;&lt; idx &lt;&lt; std::endl;
    } catch (const std::invalid_argument&amp; e) {
        std::cout &lt;&lt; "無效的輸入: " &lt;&lt; e.what() &lt;&lt; std::endl;
    } catch (const std::out_of_range&amp; e) {
        std::cout &lt;&lt; "數(shù)值超出范圍: " &lt;&lt; e.what() &lt;&lt; std::endl;
    }
    return 0;
}

在這個示例中,我們使用了 std::stoi 的第二個參數(shù) idx,它存儲了轉(zhuǎn)換停止的位置,即字符串中 “123” 之后的字符 ‘a’ 的索引。

示例3:使用 base 參數(shù)

#include &lt;iostream&gt;
#include &lt;string&gt;

int main() {
    std::string str = "1a2";
    try {
        int num = std::stoi(str, nullptr, 16); // 將字符串視為十六進(jìn)制數(shù)
        std::cout &lt;&lt; "十六進(jìn)制轉(zhuǎn)換結(jié)果: " &lt;&lt; num &lt;&lt; std::endl;
    } catch (const std::invalid_argument&amp; e) {
        std::cout &lt;&lt; "無效的輸入: " &lt;&lt; e.what() &lt;&lt; std::endl;
    } catch (const std::out_of_range&amp; e) {
        std::cout &lt;&lt; "數(shù)值超出范圍: " &lt;&lt; e.what() &lt;&lt; std::endl;
    }
    return 0;
}

在這個示例中,我們使用了 std::stoi 的第三個參數(shù) base,將字符串 “1a2” 視為十六進(jìn)制數(shù)進(jìn)行轉(zhuǎn)換。

異常

如果轉(zhuǎn)換失?。ɡ?,字符串不包含有效的整數(shù)),stoi() 會拋出一個 std::invalid_argument 異常。如果轉(zhuǎn)換后的數(shù)字超出了 int 類型的范圍,會拋出 std::out_of_range 異常。

注意事項

  • 確保字符串只包含有效的數(shù)字字符,否則 stoi() 會拋出異常。
  • 如果需要處理可能拋出的異常,應(yīng)該使用 try-catch 塊來捕獲這些異常。
  • 如果輸入的字符串不是有效的整數(shù)表示,std::stoi 會拋出 std::invalid_argument 異常。
  • 如果字符串表示的數(shù)值超出了 int 類型的范圍,std::stoi 會拋出 std::out_of_range 異常。
  • 使用 idx 參數(shù)時,如果轉(zhuǎn)換失敗,idx 將被設(shè)置為 0。
  • 使用 base 參數(shù)時,如果設(shè)置為0,函數(shù)會根據(jù)字符串的前綴自動確定數(shù)制。如果字符串以 “0x” 或 “0X” 開頭,表示十六進(jìn)制;如果以 “0” 開頭,表示八進(jìn)制;否則,表示十進(jìn)制。

到此這篇關(guān)于c++中stoi函數(shù)的使用小結(jié)的文章就介紹到這了,更多相關(guān)c++ stoi函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++繼承中的訪問控制實例分析

    C++繼承中的訪問控制實例分析

    這篇文章主要介紹了C++繼承中的訪問控制,是面向?qū)ο蟪绦蛟O(shè)計中非常重要的知識點,需要的朋友可以參考下
    2014-08-08
  • C語言調(diào)用攝像頭實現(xiàn)生成yuv未壓縮圖片

    C語言調(diào)用攝像頭實現(xiàn)生成yuv未壓縮圖片

    這篇文章主要為大家詳細(xì)介紹了C語言如何調(diào)用攝像頭實現(xiàn)生成yuv未壓縮圖片,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以參考一下
    2023-11-11
  • C語言中初始、增加和刪除進(jìn)程信號的操作方法簡介

    C語言中初始、增加和刪除進(jìn)程信號的操作方法簡介

    這篇文章主要介紹了C語言中初始、增加和刪除進(jìn)程信號的操作方法簡介,分別是sigemptyset函數(shù)、sigaddset函數(shù)和sigdelset函數(shù)的用法,需要的朋友可以參考下
    2015-09-09
  • C++中日期類的常見題目合集分享

    C++中日期類的常見題目合集分享

    這篇文章主要為大家詳細(xì)介紹了一些C++中日期類的常見題目,文中的示例代碼講解詳細(xì),對我們掌握C++有一定的幫助,感興趣的小伙伴可以了解一下
    2023-06-06
  • 求素數(shù),用vector存儲的實現(xiàn)方法

    求素數(shù),用vector存儲的實現(xiàn)方法

    本篇文章是對求素數(shù),用vector存儲的實現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • c語言生成隨機數(shù)的方法(獲得一組不同的隨機數(shù))

    c語言生成隨機數(shù)的方法(獲得一組不同的隨機數(shù))

    c語言生成一組不同的隨機數(shù),大家參考使用吧
    2013-12-12
  • C++智能指針之shared_ptr的具體使用

    C++智能指針之shared_ptr的具體使用

    本文主要介紹了C++智能指針之shared_ptr的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2022-05-05
  • 插入排序算法之希爾排序+直接插入排序

    插入排序算法之希爾排序+直接插入排序

    這篇文章主要介紹了插入排序算法之希爾排序+直接插入排序的相關(guān)知識,本文通過實例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • C語言題目:有多少張桌子--并查集

    C語言題目:有多少張桌子--并查集

    并查集是一種用于管理分組的數(shù)據(jù)結(jié)構(gòu)。它具備兩個操作:(1)查詢元素a和元素b是否為同一組 (2) 將元素a和b合并為同一組,需要的朋友可以參考下
    2021-09-09
  • C語言字符函數(shù)和字符串函數(shù)示例詳解

    C語言字符函數(shù)和字符串函數(shù)示例詳解

    C語言中有一系列的函數(shù)是對字符進(jìn)行分類的,就是對判斷一個字符屬于什么類型的字符,這類字符函數(shù)的使用都要包含一個頭文件ctype.h,這篇文章主要介紹了C語言字符函數(shù)和字符串函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2025-10-10

最新評論

深水埗区| 沈丘县| 池州市| 喀什市| 绩溪县| 上饶市| 潍坊市| 赣州市| 东方市| 囊谦县| 横山县| 浪卡子县| 东乌| 军事| 旅游| 简阳市| 瑞昌市| 浙江省| 彭阳县| 留坝县| 景泰县| 盐池县| 汤阴县| 瑞安市| 兴海县| 获嘉县| 葵青区| 兴义市| 左权县| 九寨沟县| 明水县| 宁强县| 榆树市| 平武县| 台州市| 沙坪坝区| 横峰县| 华亭县| 涟水县| 年辖:市辖区| 华阴市|