How to sort a string with digits and letters (digits before letters) in C++

1 Answer

0 votes
#include <iostream>
#include <string>
#include <algorithm>

int main() {
    std::string str = "d2c4b3a1";

    // Custom comparator: letters before digits
    std::sort(str.begin(), str.end(), [](char a, char b) {
        if (std::isdigit(a) && std::isalpha(b)) return true;
        if (std::isalpha(a) && std::isdigit(b)) return false;
        return a < b;
    });

    std::cout << str << std::endl;
}

 
 
/*
run:
 
1234abcd
 
*/

 



answered May 25, 2025 by avibootz

Related questions

...