亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

如何用c++ string匹配實現字符串排序

c++
小樊
95
2024-09-25 08:59:14
欄目: 編程語言

你可以使用C++的<algorithm>庫中的sort()函數對字符串進行排序。但是,如果你想使用字符串匹配來實現自定義的排序規則,你可以使用<regex>庫和自定義比較函數。

下面是一個使用正則表達式和自定義比較函數對字符串進行排序的例子:

#include <iostream>
#include <vector>
#include <string>
#include <regex>
#include <algorithm>

// 自定義比較函數
bool compareStrings(const std::string& s1, const std::string& s2) {
    // 使用正則表達式提取數字
    std::regex num_regex(R"(\d+)");
    std::smatch match1, match2;

    // 查找第一個字符串中的所有數字
    if (std::regex_search(s1, match1, num_regex) && std::regex_search(s2, match2, num_regex)) {
        // 將找到的數字轉換為整數并比較
        int num1 = std::stoi(match1.str());
        int num2 = std::stoi(match2.str());
        return num1 < num2;
    }

    // 如果一個字符串包含數字而另一個不包含,則認為包含數字的字符串較小
    return s1.find(num_regex) != std::string::npos;
}

int main() {
    // 要排序的字符串向量
    std::vector<std::string> strs = {"abc123", "def456", "ghi789", "jkl012", "mno345"};

    // 使用自定義比較函數對字符串進行排序
    std::sort(strs.begin(), strs.end(), compareStrings);

    // 輸出排序后的字符串向量
    for (const auto& s : strs) {
        std::cout<< s << std::endl;

0
内黄县| 南通市| 南雄市| 岚皋县| 遵义县| 彭州市| 长宁区| 页游| 仁化县| 大石桥市| 久治县| 平邑县| 兴海县| 武平县| 龙岩市| 富川| 温宿县| 丰镇市| 灵璧县| 荥经县| 金阳县| 洛隆县| 富顺县| 乐至县| 綦江县| 开封县| 新巴尔虎左旗| 滕州市| 都昌县| 丰台区| 定结县| 绩溪县| 英吉沙县| 布拖县| 介休市| 得荣县| 道真| 金坛市| 遵义市| 昌图县| 新郑市|