programming_tutorials/01_oop_basics/06_string.txt

26 lines
1.1 KiB
Plaintext
Executable File

Valamelyik vektor osztályból készíts egy saját String osztályt. (Vector<char> -al ekvivalens), de készítsd el
template nélkül, illetve adj hozzá általad hasznosnak ítélt függvényeket.
néhány ötlet: to_float(), to_double(), to_int(), trim(), replace(), find(val : String), begins_with(str : String) : bool, ends_with(),
sub_str(int from, int num = -1), c_str(), operator==, operator!=, operator=, operator+=, operator+, remove(str : String),
print(), format(), etc.
Megj: Ha implementáljátok a c_str() függvényt: Ez egy c/c++ on tömböt ad vissza (char *), és nyilván már tudjátok,
hogy egy ilyen tömbnek nem lehet megmondani a méretét. A trükk az, hogy ezek a c stringek nul termináltak.
Azaz az utolsó karakterük a 0 kontroll karaktert tartalmazza! Kódban: '\0' azza a 0. ASCII karakter.
Például, hogy egy ilyen char* es konstruktort szeretnétek csinálni, az valahogy így fog kinézni:
String::String(const char *p_c_str) {
_data = nullptr;
_actual_size = 0;
_size = 0;
_grow_by = 100;
int i = 0;
while (p_c_str[i] != '\0') {
push_back(p_c_str[i]);
++i;
}
}