Ugrás a tartalomhoz

std::string::find

A Wikiszótárból, a nyitott szótárból


Főnév

std::string::find (tsz. std::string::finds)

  1. (informatika) A std::string::find függvény lehetővé teszi, hogy egy adott szöveget vagy karaktert keressünk egy std::string objektumban. Ez akkor hasznos, ha meg akarjuk tudni, hogy egy bizonyos részstring vagy karakter létezik-e egy adott stringben, és ha igen, akkor hol található.



Szintaxis:

size_t find (const std::string& keresett, size_t pos = 0) const;
size_t find (const char* keresett, size_t pos = 0) const;
size_t find (char keresett, size_t pos = 0) const;
  • keresett – A keresett részstring vagy karakter.
  • pos – A keresés kezdőpozíciója (opcionális, alapértelmezés: 0).
  • Visszatérési érték: A megtalált elem első előfordulásának pozíciója a stringben. Ha nem található meg, akkor std::string::npos értéket ad vissza.



Példa használatra:

1. Egyszerű keresés egy részstringre

#include <iostream>
#include <string>

int main() {
    std::string szoveg = "Helló, világ!";
    
    size_t poz = szoveg.find("világ"); // Megkeresi a "világ" szót

    if (poz != std::string::npos) {
        std::cout << "\"világ\" megtalálható a(z) " << poz << ". pozíción." << std::endl;
    } else {
        std::cout << "\"világ\" nem található meg." << std::endl;
    }

    return 0;
}

Kimenet:

"világ" megtalálható a(z) 7. pozíción.

2. Keresés egy karakterre

Ha egyetlen karaktert keresünk, a függvény ugyanúgy működik.

std::string szoveg = "C++ programozás";
size_t poz = szoveg.find('p'); // Megkeresi az első 'p' karaktert

if (poz != std::string::npos) {
    std::cout << "A 'p' karakter megtalálható a(z) " << poz << ". helyen." << std::endl;
}

Kimenet:

A 'p' karakter megtalálható a(z) 4. helyen.

3. Keresés adott pozíciótól

Ha nem az elejétől szeretnénk keresni, megadhatunk egy kezdőpozíciót.

std::string szoveg = "alma alma körte";
size_t poz = szoveg.find("alma", 2); // Keresés a 2. karaktertől

std::cout << "Második \"alma\" pozíciója: " << poz << std::endl;

Kimenet:

Második "alma" pozíciója: 5

4. Ha a keresett szöveg nincs benne

Ha a keresett részstring vagy karakter nem található meg, a visszatérési érték std::string::npos lesz.

std::string szoveg = "C++ programozás";
size_t poz = szoveg.find("Python"); // Nem található meg

if (poz == std::string::npos) {
    std::cout << "\"Python\" nem található meg a szövegben." << std::endl;
}

Kimenet:

"Python" nem található meg a szövegben.

Mire figyeljünk?

  • Érzékeny a kis- és nagybetűkre – Ha "C++"-t keresel "c++" szövegben, nem találja meg.
  • Ha npos az eredmény, akkor a keresett szöveg nincs benne. Ezért mindig érdemes ellenőrizni.
  • Indexelés 0-tól kezdődik – Az első karakter pozíciója mindig 0.



Összegzés

A std::string::find egy hasznos függvény, amely lehetővé teszi a részstringek és karakterek keresését std::string objektumokon belül. Könnyen használható karakterláncok keresésére és szövegfeldolgozási feladatokra.

👉 Használati példák: - Fájlnevek vagy URL-ek keresése és szűrése - Szöveg formázása és feldolgozása - Felhasználói beviteli adatok ellenőrzése