From aa4d426b4d3527d7e166df1a05058c9a4a0f6683 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Fri, 30 Apr 2021 00:33:56 +0200 Subject: initial/final commit --- hello.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 hello.cpp (limited to 'hello.cpp') diff --git a/hello.cpp b/hello.cpp new file mode 100644 index 0000000..c56dd7b --- /dev/null +++ b/hello.cpp @@ -0,0 +1,40 @@ +#include +#include +#include + +static std::string get_next_filename(std::string filename) +{ + std::regex + numbered_reg("(.[^.]*)[(]([1-9][0-9]{0,8})[)](([.].*)?)"), + unnumbered_reg("(.[^.]*)(([.].*)?)"); + std::smatch what; + std::string base_name, number, rest; + long new_idx; + + if (regex_match(filename, what, numbered_reg)) { + base_name = what[1]; + number = what[2]; + rest = what[3]; + new_idx = std::stol(number) + 1; + } else { + regex_match(filename, what, unnumbered_reg); + base_name = what[1]; + rest = what[2]; + new_idx = 1; + } + std:: cout << filename << " "; + return base_name + "(" + std::to_string(new_idx) + ")" + rest; +} + +int main() +{ + std::cout << get_next_filename("dupa(1)") << std::endl; + std::cout << get_next_filename("dupa(1).txt") << std::endl; + std::cout << get_next_filename("....dupa(1).txt") << std::endl; + std::cout << get_next_filename("dupa(01).kupa(22).png") << std::endl; + std::cout << get_next_filename("dupa(1)e..txt") << std::endl; + std::cout << get_next_filename("dupa(111111111).txt") << std::endl; + std::cout << get_next_filename("dupa(1111111111).txt") << std::endl; + std::cout << get_next_filename("dupa.txt") << std::endl; + return 0; +} -- cgit v1.2.3