Programozás közben általában nem akarod újra feltalálni a kereket. Sok szabványos algoritmus esetében lehet, hogy valaki már elvégezte helyetted a munkát.
Más fájlok tartalmának beillesztésére a C++ az include direktívát használja.
Ezeket az include-okat a fájl elején kell megadni.
Fordítás közben a direktívát tartalmazó sor helyére a megfelelő fájl tartalma kerül.
Az include-ok után a névterek ugyanolyanok maradnak, mint az eredeti fájlban.
A szabványos könyvtár sok gyakori függvényt, algoritmust és adatszerkezetet kínál.
A szabványos könyvtár a std névteret használja.
Egy példa erre a C numerikus könyvtára, a cmath.
Sok gyakori matematikai műveletet biztosít.
#include <cmath>
int cube_me(int a) {
// raise `a` to the third power
return std::pow(a, 3);
}
A szabványos könyvtárakat csúcsos zárójellel <> illesztjük be a kettős idézőjel " helyett.
A különbség az, hogy a fordító hol keresi az adott fájlokat.
A csúcsos zárójeles változatnál az aktuális projektben való keresés kimarad, és a keresés rögtön a rendszer include-könyvtáraiban indul.
Ha helyi fájlokat szeretnél beilleszteni, kettős idézőjelet használnál: #include "myfile"
A C++-ban a string egy módosítható objektum, amely szöveget karakterek (betűk, számjegyek, írásjelek stb.) sorozataként ábrázol.
A stringeket a string metódusainak meghívásával lehet kezelni.
A C++-ban a string típust és a hozzá tartozó függvényeket használat előtt be kell illeszteni a stringek könyvtárából.
Ezt úgy teheted meg, hogy a fájlod elejére beírod: #include <string>.
Ezek ekkor a std névtérben lesznek elérhetők.
A string típus teljesen minősített neve std::string.
A string literál a kettős idézőjel karaktert használja: ".
#include <string>
std::string w_berry_quote{"A well-made sentence, I think, is a thing of beauty."};
A + operátorral össze tudod fűzni a stringeket:
std::string original_title{"The School of Rock"};
std::string sequel_indicator{"Electric Boogaloo"};
std::string next_movie_title = original_title + " 2: " + sequel_indicator;
A stringek könyvtárának használatához tudnod kell, hogy meg lehet hívni egy objektumhoz tartozó függvényt. Ezeket tagfüggvényeknek nevezzük. A tanterv későbbi részében többet is megtudsz a tagfüggvényekről és a hozzájuk kapcsolódó osztályfogalomról.
std::string qualification{"awesome"};
// 1st argument: from the index to the end of the string:
std::string who_is_awesome = qualification.substr(5);
// => "me"
// 2nd optional argument for the length:
std::string material{"haunted books"};
std::string ghost = material.substr(8, 3);
// => "boo"
A find függvény is nagyon hasznos.
A stringen tagfüggvényként hívjuk meg, és argumentumként egy stringet kap.
A find visszaadja az adott részstring stringen belüli első előfordulásának nullától induló indexű pozícióját.
std::string new_release{"apple released a new app!"};
new_release.find("app");
// => 0
new_release.find("e");
// => 4
Ebben a feladatban egy naplózott jelentés soraival fogsz dolgozni.
Minden naplósor egy string, amelynek formátuma a következő: "[<LEVEL>]: <MESSAGE>".
Három különböző naplózási szint van:
INFOWARNINGERRORHárom részfeladatod van; mindegyik kap egy naplósort, és valamit tenned kell vele.
Valósítsd meg a log_line::message metódust, amely visszaadja egy naplósor üzenetét:
log_line::message("[ERROR]: Invalid operation")
// => "Invalid operation"
Valósítsd meg a log_line::log_level metódust, amely visszaadja egy naplósor naplózási szintjét; a szintet nagybetűvel kell visszaadni:
log_line::log_level("[ERROR]: Invalid operation")
// => "ERROR"
Valósítsd meg a log_line::reformat metódust, amely újraformázza a naplósort: az üzenet kerül előre, utána pedig zárójelben a naplózási szint következik:
log_line::reformat("[INFO]: Operation completed")
// => "Operation completed (INFO)"
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) C++ nyelvet 19 fogalom100 feladat segítségével, valódi emberi mentorálással, mindez ingyen.