91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

C++ string.substr索引越界怎么辦

c++
小樊
90
2024-07-09 00:18:23
欄目: 編程語言

當使用string.substr對字符串進行子串提取時,如果索引越界會導致程序運行時出現未定義行為。為了避免這種情況,可以在提取子串之前先判斷索引是否在有效范圍內,可以使用std::min函數來確保索引不會超出字符串的長度。

以下是一個示例代碼:

#include <iostream>
#include <string>
#include <algorithm> // for std::min

int main() {
    std::string str = "Hello, World!";
    int start = 6; // starting index
    int length = 10; // number of characters to extract

    // Check if start index is within string length
    if(start >= 0 && start < str.length()) {
        // Calculate number of characters to extract without going out of bounds
        length = std::min(length, static_cast<int>(str.length() - start));

        std::string subStr = str.substr(start, length);
        std::cout << "SubString: " << subStr << std::endl;
    } else {
        std::cout << "Invalid start index" << std::endl;
    }

    return 0;
}

在上面的示例中,我們首先檢查起始索引是否在字符串長度范圍內,然后使用std::min函數計算要提取的字符數,確保不會超出字符串長度。這樣可以避免string.substr索引越界的問題。

0
分宜县| 社旗县| 岳普湖县| 马龙县| 陵川县| 保山市| 大悟县| 徐汇区| 石嘴山市| 泉州市| 金昌市| 图木舒克市| 清苑县| 芦山县| 宣威市| 米林县| 比如县| 东乌| 深水埗区| 武隆县| 伊川县| 呈贡县| 凭祥市| 吕梁市| 安图县| 眉山市| 腾冲县| 丰镇市| 株洲县| 华池县| 东阳市| 宁陕县| 苏州市| 阆中市| 图片| 汉川市| 延安市| 福海县| 巴彦县| 肥东县| 仙桃市|