Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,846 questions

55,675 answers

573 users

How to extract a file name from a path, replace whitespaces, and make it lowercase using RegEx in C++

1 Answer

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

std::string normalizeFilename(const std::string& filePath) {
    std::regex pattern(R"(^.*[\\/](.*)$)");
    std::smatch match;

    std::string filename = filePath;
    if (std::regex_match(filePath, match, pattern)) {
        filename = match[1];
    }

    // Replace whitespace with underscores
    std::regex whitespace(R"(\s+)");
    filename = std::regex_replace(filename, whitespace, "_");

    // Convert to lowercase
    for (char& ch : filename) {
        ch = std::tolower(static_cast<unsigned char>(ch));
    }

    return filename;
}

int main() {
    std::string filePath = R"(c:\path\to\file\WITH Whitespace1 and Whitespace2.cpp)";
    
    std::string result = normalizeFilename(filePath);
    
    std::cout << result << std::endl; 
}

 
 
/*
run:

with_whitespace1_and_whitespace2.cpp
 
*/

 



answered Jul 15, 2025 by avibootz
...