From e485cf3dd08e024b24a6d01b495ff0de6835df6c Mon Sep 17 00:00:00 2001 From: Oskar Date: Sun, 3 Nov 2024 13:37:12 +0100 Subject: more, some unfinished stuff --- 9p40.cpp | 2 +- 9p43.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ 9p44.cpp | 34 ++++++++++++++++++++++++++++++++++ 9p45.cpp | 12 ++++++++++++ 9p46.cpp | 12 ++++++++++++ diff | 2 ++ 6 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 9p43.cpp create mode 100644 9p44.cpp create mode 100644 9p45.cpp create mode 100644 9p46.cpp create mode 100644 diff diff --git a/9p40.cpp b/9p40.cpp index 517dd91..763f6f8 100644 --- a/9p40.cpp +++ b/9p40.cpp @@ -23,7 +23,7 @@ int main () { while (std::cin >> word) { svec.push_back(word); } - + svec.resize(svec.size()+svec.size()/2); std::cout << svec.capacity() << std::endl; return 0; diff --git a/9p43.cpp b/9p43.cpp new file mode 100644 index 0000000..8ba0bf3 --- /dev/null +++ b/9p43.cpp @@ -0,0 +1,43 @@ +#include +#include + +/* + * + * 9.43 + * + * + */ + +std::string &replace_substr(std::string &s, + const std::string oldval, + const std::string newval) { + + for(auto beg = s.begin() ; beg < s.cend() + oldval.size() + 1; ) { + auto oldbeg = oldval.cbegin(); + for(auto nbeg = beg ; oldbeg != oldval.cend() ; ++oldbeg, ++nbeg) { + if(*oldbeg != *nbeg) { + break; + } + } + + if(oldbeg == oldval.cend()) { + auto pos = beg - s.begin(); + s.erase(pos, oldval.size()); + s.insert(pos, newval); + beg = s.begin() + pos + newval.size(); + } else { + ++beg; + } + } + + return s; +} + +int main () { + + std::string a = "hahahaha WOW a WO hah WOW WOW WOW"; + std::string b = "tho though to tho yo tho bro tho"; + std::cout << replace_substr(a, "WOW", "wow!") << std::endl; + std::cout << replace_substr(b, "tho", "though") << std::endl; + return 0; +} diff --git a/9p44.cpp b/9p44.cpp new file mode 100644 index 0000000..263d122 --- /dev/null +++ b/9p44.cpp @@ -0,0 +1,34 @@ +#include +#include + +/* + * + * 9.44 + * + * + */ + +std::string &replace_substr(std::string &s, + const std::string oldval, + const std::string newval) { + + for(decltype(s.size()) i = 0 ; i < s.size() ; ) { + if(s.substr(i, oldval.size()) == oldval) { + s.replace(i, oldval.size(), newval); + i += newval.size(); + } else { + ++i; + } + } + + return s; +} + +int main () { + + std::string a = "hahahaha WOW a WO hah WOW WOW WOW"; + std::string b = "tho though to tho yo tho bro tho"; + std::cout << replace_substr(a, "WOW", "wow!") << std::endl; + std::cout << replace_substr(b, "tho", "though") << std::endl; + return 0; +} diff --git a/9p45.cpp b/9p45.cpp new file mode 100644 index 0000000..58d5fbf --- /dev/null +++ b/9p45.cpp @@ -0,0 +1,12 @@ +#include + +/* + * + * Description + * + * + */ + +int main () { + return 0; +} diff --git a/9p46.cpp b/9p46.cpp new file mode 100644 index 0000000..58d5fbf --- /dev/null +++ b/9p46.cpp @@ -0,0 +1,12 @@ +#include + +/* + * + * Description + * + * + */ + +int main () { + return 0; +} diff --git a/diff b/diff new file mode 100644 index 0000000..a9d8ef4 --- /dev/null +++ b/diff @@ -0,0 +1,2 @@ +hahahaha wow! a WO hah wow! wow! wow! +though thoughugh to though yo though bro though -- cgit v1.2.3