string library

Üdvözlöm, Ön a string library szó jelentését keresi. A DICTIOUS-ban nem csak a string library szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a string library szót egyes és többes számban mondani. Minden, amit a string library szóról tudni kell, itt található. A string library szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. Astring library és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.

Főnév

string library (tsz. string libraries)

  1. (informatika) A C++ string könyvtár (azaz <string> fejlécfájl) lehetővé teszi szöveges adatok hatékony kezelését. Az alábbiakban részletesen bemutatom a fontosabb aspektusait.



1. Alapok

A C++ std::string osztályát az <string> fejlécfájl tartalmazza. Ez egy dinamikus karakterlánc-osztály, amely megkönnyíti a szövegek kezelését a nullával lezárt C-s karaktertömbökhöz (char) képest.

#include <iostream>
#include <string>

int main() {
    std::string szoveg = "Hello, világ!";
    std::cout << szoveg << std::endl;
    return 0;
}

2. String létrehozása és inicializálása

A std::string többféleképpen inicializálható:

std::string ures;              // Üres string
std::string szoveg = "alma";   // Literállal
std::string masik(szoveg);     // Másik stringgel
std::string ism("aaaa", 2);    // "aa" (csak az első 2 karakter)
std::string ismet(5, 'x');     // "xxxxx" (5 darab 'x' karakter)

3. String műveletek

3.1. Összefűzés (+ és +=)

std::string s1 = "Hello";
std::string s2 = " világ!";
std::string s3 = s1 + s2;  // "Hello világ!"
s1 += " C++";              // "Hello C++"

3.2. Méret és hossz

std::string s = "Hello";
std::cout << s.size() << std::endl;    // 5
std::cout << s.length() << std::endl;  // 5 (size() és length() ugyanaz)

3.3. Üresség ellenőrzése

if (s.empty()) {
    std::cout << "Üres string" << std::endl;
}

3.4. Karakterek elérése

char elso = s;          // 'H'
char masodik = s.at(1);    // 'e'
s = 'h';                // "hello"

3.5. Részstring (substr())

std::string s = "Hello világ";
std::string sub = s.substr(6, 5);  // "világ"

4. String módosítások

4.1. Beszúrás (insert())

std::string s = "világ";
s.insert(0, "Hello "); // "Hello világ"

4.2. Törlés (erase())

std::string s = "Hello világ";
s.erase(5, 6);  // "Hello"

4.3. Csere (replace())

std::string s = "Hello világ";
s.replace(6, 5, "C++"); // "Hello C++"

5. Keresés a stringben

5.1. Egyszerű keresés (find())

std::string s = "Alma korte banan";
size_t pos = s.find("korte");
if (pos != std::string::npos) {
    std::cout << "Megtalálható a(z) " << pos << ". pozíción." << std::endl;
}

5.2. Fordított keresés (rfind())

size_t pos = s.rfind("banan");  // Jobbról balra keres

5.3. Kezdés ellenőrzése (starts_with()) - C++20

if (s.starts_with("Alma")) {
    std::cout << "Az 's' 'Alma'-val kezdődik." << std::endl;
}

5.4. Végződés ellenőrzése (ends_with()) - C++20

if (s.ends_with("banan")) {
    std::cout << "Az 's' 'banan'-nal végződik." << std::endl;
}

6. String és számok átalakítása

6.1. String → Szám (stoi, stof, stod)

std::string s = "123";
int szam = std::stoi(s);  // 123

6.2. Szám → String (std::to_string)

int x = 42;
std::string s = std::to_string(x);  // "42"

7. Karakterláncok összehasonlítása

7.1. Egyszerű összehasonlítás

if (s1 == s2) {
    std::cout << "Egyenlőek" << std::endl;
}

7.2. Lexikografikus összehasonlítás (compare())

if (s1.compare(s2) < 0) {
    std::cout << "s1 kisebb, mint s2" << std::endl;
}

8. String és C-stílusú karakterláncok

8.1. c_str() és data()

std::string s = "Hello";
const char* cstr = s.c_str(); // Nullával lezárt C-s karaktertömb

8.2. C-stringből std::string

const char* cstr = "Hello";
std::string s = cstr;

9. String stream-ek (std::stringstream)

A std::stringstream segít a stringekkel végzett műveletekben.

#include <sstream>
std::stringstream ss;
ss << "Érték: " << 42;
std::string eredmeny = ss.str(); // "Érték: 42"

10. Whitespace eltávolítása

10.1. Vezető és záró szóközök eltávolítása

#include <algorithm>
#include <cctype>

std::string trim(const std::string& s) {
    size_t start = s.find_first_not_of(" \t\n");
    size_t end = s.find_last_not_of(" \t\n");
    return (start == std::string::npos) ? "" : s.substr(start, end - start + 1);
}

11. Példa: szavak számlálása

#include <iostream>
#include <sstream>
#include <map>

int main() {
    std::string szoveg = "alma korte alma banan alma";
    std::stringstream ss(szoveg);
    std::string szo;
    std::map<std::string, int> szamlalo;

    while (ss >> szo) {
        szamlalo++;
    }

    for (const auto&  : szamlalo) {
        std::cout << kulcs << ": " << ertek << std::endl;
    }
}

Kimenet:

alma: 3
banan: 1
korte: 1

Összegzés

A std::string egy erőteljes, dinamikus eszköz a szövegkezelésre C++-ban. Az alapműveleteken kívül lehetőséget nyújt keresésre, módosításra, konvertálásra és stream-kezelésre is. Az újabb C++ verziók (pl. C++20) további kényelmi funkciókkal bővítették.