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

溫馨提示×

如何用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
灌南县| 临朐县| 赤峰市| 化州市| 赫章县| 上栗县| 喀喇沁旗| 托克逊县| 双桥区| 沁水县| 上饶市| 日土县| 沙河市| 察雅县| 榆林市| 印江| 温州市| 禹州市| 榕江县| 合水县| 邢台市| 肃宁县| 天长市| 景东| 宁夏| 铜山县| 兴业县| 衡南县| 嫩江县| 苏尼特左旗| 交城县| 台中市| 三亚市| 安图县| 德江县| 平南县| 博野县| 桦川县| 蕉岭县| 张家川| 东安县|