hoi lief
This commit is contained in:
parent
5cef88bae1
commit
1dc7d86a71
50
.vscode/settings.json
vendored
Normal file
50
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
{
|
||||||
|
"files.associations": {
|
||||||
|
"array": "cpp",
|
||||||
|
"atomic": "cpp",
|
||||||
|
"bit": "cpp",
|
||||||
|
"*.tcc": "cpp",
|
||||||
|
"cctype": "cpp",
|
||||||
|
"clocale": "cpp",
|
||||||
|
"cmath": "cpp",
|
||||||
|
"compare": "cpp",
|
||||||
|
"concepts": "cpp",
|
||||||
|
"cstdarg": "cpp",
|
||||||
|
"cstddef": "cpp",
|
||||||
|
"cstdint": "cpp",
|
||||||
|
"cstdio": "cpp",
|
||||||
|
"cstdlib": "cpp",
|
||||||
|
"cwchar": "cpp",
|
||||||
|
"cwctype": "cpp",
|
||||||
|
"deque": "cpp",
|
||||||
|
"string": "cpp",
|
||||||
|
"unordered_map": "cpp",
|
||||||
|
"vector": "cpp",
|
||||||
|
"exception": "cpp",
|
||||||
|
"algorithm": "cpp",
|
||||||
|
"functional": "cpp",
|
||||||
|
"iterator": "cpp",
|
||||||
|
"memory": "cpp",
|
||||||
|
"memory_resource": "cpp",
|
||||||
|
"numeric": "cpp",
|
||||||
|
"optional": "cpp",
|
||||||
|
"random": "cpp",
|
||||||
|
"string_view": "cpp",
|
||||||
|
"system_error": "cpp",
|
||||||
|
"tuple": "cpp",
|
||||||
|
"type_traits": "cpp",
|
||||||
|
"utility": "cpp",
|
||||||
|
"initializer_list": "cpp",
|
||||||
|
"iosfwd": "cpp",
|
||||||
|
"iostream": "cpp",
|
||||||
|
"istream": "cpp",
|
||||||
|
"limits": "cpp",
|
||||||
|
"new": "cpp",
|
||||||
|
"numbers": "cpp",
|
||||||
|
"ostream": "cpp",
|
||||||
|
"stdexcept": "cpp",
|
||||||
|
"streambuf": "cpp",
|
||||||
|
"typeinfo": "cpp",
|
||||||
|
"fstream": "cpp"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -6,12 +6,12 @@
|
|||||||
# By: whaffman <whaffman@student.codam.nl> +#+ #
|
# By: whaffman <whaffman@student.codam.nl> +#+ #
|
||||||
# +#+ #
|
# +#+ #
|
||||||
# Created: 2025/03/19 16:44:48 by whaffman #+# #+# #
|
# Created: 2025/03/19 16:44:48 by whaffman #+# #+# #
|
||||||
# Updated: 2025/03/21 15:17:22 by whaffman ######## odam.nl #
|
# Updated: 2025/03/23 14:02:26 by whaffman ######## odam.nl #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
NAME =
|
NAME = Replacer
|
||||||
SRC =
|
SRC = Replacer.cpp main.cpp
|
||||||
|
|
||||||
-include ../common.mk
|
-include ../common.mk
|
||||||
|
|
||||||
|
|||||||
BIN
ex04/Replacer
Executable file
BIN
ex04/Replacer
Executable file
Binary file not shown.
BIN
ex04/Replacer.o
Normal file
BIN
ex04/Replacer.o
Normal file
Binary file not shown.
29
ex04/inc/Replacer.hpp
Normal file
29
ex04/inc/Replacer.hpp
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* :::::::: */
|
||||||
|
/* Replacer.hpp :+: :+: */
|
||||||
|
/* +:+ */
|
||||||
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
|
/* +#+ */
|
||||||
|
/* Created: 2025/03/23 13:26:27 by whaffman #+# #+# */
|
||||||
|
/* Updated: 2025/03/23 14:04:08 by whaffman ######## odam.nl */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
class Replacer
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
std::string oldString;
|
||||||
|
std::string newString;
|
||||||
|
Replacer();
|
||||||
|
|
||||||
|
public:
|
||||||
|
~Replacer();
|
||||||
|
Replacer(std::string const &oldString, std::string const &newString);
|
||||||
|
std::string process(std::string const &input) const;
|
||||||
|
};
|
||||||
|
|
||||||
BIN
ex04/main.o
Normal file
BIN
ex04/main.o
Normal file
Binary file not shown.
52
ex04/src/Replacer.cpp
Normal file
52
ex04/src/Replacer.cpp
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* :::::::: */
|
||||||
|
/* Replacer.cpp :+: :+: */
|
||||||
|
/* +:+ */
|
||||||
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
|
/* +#+ */
|
||||||
|
/* Created: 2025/03/23 13:30:57 by whaffman #+# #+# */
|
||||||
|
/* Updated: 2025/03/23 14:05:40 by whaffman ######## odam.nl */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include "Replacer.hpp"
|
||||||
|
|
||||||
|
Replacer::Replacer()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
Replacer::~Replacer()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
Replacer::Replacer(std::string const &oldString, std::string const &newString) : oldString(oldString), newString(newString)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
std::string Replacer::process(std::string const &input) const
|
||||||
|
{
|
||||||
|
std::string result = "";
|
||||||
|
size_t i = 0;
|
||||||
|
size_t j = 0;
|
||||||
|
|
||||||
|
for (i = 0; i < input.size(); i++)
|
||||||
|
{
|
||||||
|
j = 0;
|
||||||
|
while (i + j < input.size() && input[i + j] == oldString[j])
|
||||||
|
j++;
|
||||||
|
if (j == oldString.size())
|
||||||
|
{
|
||||||
|
result += newString;
|
||||||
|
i += j - 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
result += input[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
47
ex04/src/main.cpp
Normal file
47
ex04/src/main.cpp
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* :::::::: */
|
||||||
|
/* main.cpp :+: :+: */
|
||||||
|
/* +:+ */
|
||||||
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
|
/* +#+ */
|
||||||
|
/* Created: 2025/03/23 13:59:46 by whaffman #+# #+# */
|
||||||
|
/* Updated: 2025/03/23 14:28:19 by whaffman ######## odam.nl */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
#include <string>
|
||||||
|
#include "Replacer.hpp"
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
|
||||||
|
std::ifstream inFile;
|
||||||
|
std::fstream outFile;
|
||||||
|
std::string outFileName;
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
if (argc != 4)
|
||||||
|
std::cout << "Usage: ./Replacer <filename> <old string> <new string>" << std::endl;
|
||||||
|
|
||||||
|
inFile.open(argv[1], std::ios::in);
|
||||||
|
if (!inFile.is_open())
|
||||||
|
std::cout << "Can't open In file" << std::endl;
|
||||||
|
|
||||||
|
outFileName = argv[1];
|
||||||
|
outFileName += ".replace";
|
||||||
|
outFile.open(outFileName, std::ios::out);
|
||||||
|
if (!outFile.is_open())
|
||||||
|
std::cout << "Can't open OUT file" << std::endl;
|
||||||
|
|
||||||
|
Replacer replacer(argv[2], argv[3]);
|
||||||
|
|
||||||
|
while(std::getline(inFile, line))
|
||||||
|
{
|
||||||
|
outFile << replacer.process(line);
|
||||||
|
if (!inFile.eof())
|
||||||
|
outFile << std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
2
ex04/testfile
Normal file
2
ex04/testfile
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Dit is een test, maar niet zomaar een test
|
||||||
|
Dit is een test, maar niet zomaar een test
|
||||||
2
ex04/testfile.replace
Normal file
2
ex04/testfile.replace
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Dit is een proef, maar niet zomaar een proef
|
||||||
|
Dit is een proef, maar niet zomaar een proef
|
||||||
BIN
ex05/Harl.o
Normal file
BIN
ex05/Harl.o
Normal file
Binary file not shown.
@ -6,12 +6,12 @@
|
|||||||
# By: whaffman <whaffman@student.codam.nl> +#+ #
|
# By: whaffman <whaffman@student.codam.nl> +#+ #
|
||||||
# +#+ #
|
# +#+ #
|
||||||
# Created: 2025/03/19 16:44:48 by whaffman #+# #+# #
|
# Created: 2025/03/19 16:44:48 by whaffman #+# #+# #
|
||||||
# Updated: 2025/03/21 15:17:22 by whaffman ######## odam.nl #
|
# Updated: 2025/03/23 15:40:09 by whaffman ######## odam.nl #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
NAME =
|
NAME = Harl
|
||||||
SRC =
|
SRC = Harl.cpp main.cpp
|
||||||
|
|
||||||
-include ../common.mk
|
-include ../common.mk
|
||||||
|
|
||||||
|
|||||||
28
ex05/inc/Harl.hpp
Normal file
28
ex05/inc/Harl.hpp
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* :::::::: */
|
||||||
|
/* Harl.hpp :+: :+: */
|
||||||
|
/* +:+ */
|
||||||
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
|
/* +#+ */
|
||||||
|
/* Created: 2025/03/23 15:06:27 by whaffman #+# #+# */
|
||||||
|
/* Updated: 2025/03/23 15:35:07 by whaffman ######## odam.nl */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
class Harl
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
std::string levels[4];
|
||||||
|
void (Harl::*levelFunc[4])();
|
||||||
|
void info();
|
||||||
|
void debug();
|
||||||
|
void warning();
|
||||||
|
void error();
|
||||||
|
public:
|
||||||
|
Harl();
|
||||||
|
~Harl();
|
||||||
|
void complain(std::string level);
|
||||||
|
};
|
||||||
BIN
ex05/main.o
Normal file
BIN
ex05/main.o
Normal file
Binary file not shown.
62
ex05/src/Harl.cpp
Normal file
62
ex05/src/Harl.cpp
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* :::::::: */
|
||||||
|
/* Harl.cpp :+: :+: */
|
||||||
|
/* +:+ */
|
||||||
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
|
/* +#+ */
|
||||||
|
/* Created: 2025/03/23 15:09:28 by whaffman #+# #+# */
|
||||||
|
/* Updated: 2025/03/23 15:44:03 by whaffman ######## odam.nl */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "Harl.hpp"
|
||||||
|
|
||||||
|
Harl::Harl()
|
||||||
|
{
|
||||||
|
levels[0] = "DEBUG";
|
||||||
|
levels[1] = "INFO";
|
||||||
|
levels[2] = "WARNING";
|
||||||
|
levels[3] = "ERROR";
|
||||||
|
levelFunc[0] = &Harl::debug;
|
||||||
|
levelFunc[1] = &Harl::info;
|
||||||
|
levelFunc[2] = &Harl::warning;
|
||||||
|
levelFunc[3] = &Harl::error;
|
||||||
|
}
|
||||||
|
Harl::~Harl() {}
|
||||||
|
|
||||||
|
void Harl::debug()
|
||||||
|
{
|
||||||
|
std::cout << "[DEBUG]" << std::endl;
|
||||||
|
std::cout << "I love having extra bacon for my 7XL-double-cheese-triple-pickle-special-ketchup burger. I really do!" << std::endl;
|
||||||
|
}
|
||||||
|
void Harl::info()
|
||||||
|
{
|
||||||
|
std::cout << "[INFO]" << std::endl;
|
||||||
|
std::cout << "I cannot believe adding extra bacon costs more money. You didn’t put enough bacon in my burger! If you did, I wouldn’t be asking for more!" << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Harl::warning()
|
||||||
|
{
|
||||||
|
std::cout << "[WARNING]" << std::endl;
|
||||||
|
std::cout << "I think I deserve to have some extra bacon for free. I’ve been coming for years, whereas you started working here just last month." << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Harl::error()
|
||||||
|
{
|
||||||
|
std::cout << "[ERROR]" << std::endl;
|
||||||
|
std::cout << "This is unacceptable! I want to speak to the manager now." << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Harl::complain(std::string level)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
if (level == levels[i])
|
||||||
|
{
|
||||||
|
(this->*levelFunc[i])();
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
std::cout << "I don't know anymorre what to complain about" << std::endl;
|
||||||
|
}
|
||||||
23
ex05/src/main.cpp
Normal file
23
ex05/src/main.cpp
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* :::::::: */
|
||||||
|
/* main.cpp :+: :+: */
|
||||||
|
/* +:+ */
|
||||||
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
|
/* +#+ */
|
||||||
|
/* Created: 2025/03/23 15:38:32 by whaffman #+# #+# */
|
||||||
|
/* Updated: 2025/03/23 15:44:11 by whaffman ######## odam.nl */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "Harl.hpp"
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
Harl harl;
|
||||||
|
harl.complain("DEBUG");
|
||||||
|
harl.complain("INFO");
|
||||||
|
harl.complain("WARNING");
|
||||||
|
harl.complain("ERROR");
|
||||||
|
harl.complain("TEST");
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user