mirror of
https://github.com/Relintai/programming_tutorials.git
synced 2025-04-21 21:51:22 +02:00
26 lines
1.1 KiB
Plaintext
Executable File
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;
|
|
}
|
|
}
|