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

1 Answer

0 votes
#include <iostream>
#include <algorithm>
 
int main() {
    std::string input = "d2c4b3a1";
 
    // Custom comparator: letters before digits
    std::sort(input.begin(), input.end(), [](char a, char b) {
        if (std::isalpha(a) && std::isdigit(b)) return true;
        if (std::isdigit(a) && std::isalpha(b)) return false;
        return a < b;
    });
 
    std::cout << "Custom sorted string: " << input << std::endl;
}
 
  
  
/*
run:
  
Custom sorted string: abcd1234
  
*/

 



answered May 25, 2025 by avibootz
edited May 25, 2025 by avibootz

Related questions

...