Jednou z nejužitečnějších metod vyhledávání v C ++ je funkce "find first not of c". Tato funkce vám umožňuje najít první prvek v rozsahu, který není prvkem uvedeným uvnitř funkce.
Funkce "find first not of c" může být obzvláště užitečná, když potřebujete najít první znak nebo podřaz v řádku, který neodpovídá nějaké šabloně. Pokud máte například řetězec složený z písmen, můžete tuto funkci použít k nalezení prvního čísla v tomto řádku.
Funkce "find first not of c" má dvě možnosti: počáteční pozici v rozsahu a prvek nebo hodnotu, kterou je třeba najít. Vrací Iterator, který označuje první prvek, který není hledanou hodnotou.
Find first not of c
Funkce find_first_not_of (c) vyhledá první znak v řádku, který se nerovná symbolu c . Vrátí pozici nalezeného symbolu nebo NPOs , pokud takový symbol není nalezen.
| Vrácená hodnota | Název funkce | Parametry | Popis |
|---|---|---|---|
| size_t | find_first_not_of | const basic_string& str = basic_string(), | Vyhledá první znak, který se nerovná symbolu c, v řádku str . |
| size_t pos = 0) const; | Vyhledávání začíná pozicí pos . |
#include #include int main() else return 0;>
Výsledek plnění programu:
Первый символ, не равный o находится на позиции 1
Příklad ukazuje hledání prvního symbolu v řádku, který se nerovná symbolu 'o'. Funkce find_first_not_of vrací pozici symbolu 'e'.
Obecné informace o funkci
Funkce "find_first_not_of" je navržena tak, aby vyhledala první znak v daném řádku, který neodpovídá znakové sadě uvedené ve druhém argumentu funkce.
Funkce má tři argumenty: zdrojový řádek, sada znaků a pozice, kde začít hledat.
- Zdrojový řádek je řetězec, ve kterém bude vyhledávání provedeno.
- Sada znaků je řetězec znaků, které budou testovány, aby odpovídaly každému symbolu původního řádku.
- Pozice je volitelný argument, který označuje, z jaké pozice v původním řádku začít hledat. Výchozí pozice je nulová.
Funkce vrací pozici prvního symbolu, která neodpovídá sadě znaků. Pokud tento symbol není nalezen, vrátí se hodnota std::string::npos.
Příklad použití funkce:
std::string str = "Hello, world!";std::string symbols = "Helo";size_t pos = str.find_first_not_of(symbols);if (pos != std::string::npos) else
V tomto příkladu bude Funkce "find_first_not_of"hledat první znak na řádku" Hello, world!", který není symbolem ze sady "Helo".
Pozice prvního nevhodného symbolu bude zobrazena na obrazovce. Pokud všechny znaky původního řádku odpovídají sadě, zobrazí se na obrazovce zpráva "All symbols match the set".
Příklad použití Find first not of c
std::string s = "Hello, World!";
size_t pos = s.find_first_not_of(c);
V tomto příkladu hledáme první znak v řádku s, který není symbolem 'o'. Výsledkem bude pozice symbolu ' e ' v řádku, který bude roven 1.
Funkce může být užitečná, když potřebujete najít první znak v jiném řádku, než je daný znak, například při hledání prvního nebukvenního symbolu nebo první číslice v řádku.
Je důležité poznamenat , že funkce vrací hodnoty typu size_t, což je celé číslo bez známky, a -1 v případě, že neexistují žádné znaky, které nejsou symbolem c.
Algoritmus funkce
Algoritmus práce funkce Find first not of c() lze představit následovně:
- Inicializovat ukazatel na začátek řádku.
- Inicializovat proměnnou polohy symbolu.
- Zkontrolujte, zda je znak, na který ukazatel odkazuje, stejný jako znak c.
- Pokud je symbol roven c, přejděte na další znak a zvyšte hodnotu pozice symbolu na 1.
- Pokud symbol není roven c, vraťte hodnotu pozice symbolu.
- Pokud je dosaženo konce řádku bez nalezení symbolu, který není roven c, vraťte nulovou hodnotu.
Algoritmus funkce Find first not of c () vyhledá první znak, který není symbolem c, počínaje začátkem řádku a až do jeho konce. Funkce vrátí pozici nalezeného symbolu v řádku nebo nulovou hodnotu, pokud takový znak není nalezen.
Možnosti funkce
Funkce find_first_not_of (c) přijímá jednu možnost:
- c - symbol, o kterém se bude hledat první neshoda v řádku.
Tato možnost může být libovolným symbolem z tabulky znaků ASCII nebo široké sady Unicode.
Pokud například chcete najít první znak, který se na řádku neshoduje se symbolem "a", můžete zavolat funkci find_first_not_of('a').
Vrácená hodnota
Návratová hodnota typu size_t označuje index prvního znaku, který neodpovídá symbolům uvedeným v argumentu c . Pokud tento symbol není nalezen, vrátí se velikost řetězce ( string::: NPOs ).
std::string str = "Hello, world!";std::string characters = "wo";size_t index = str.find_first_not_of(characters);if (index != std::string::npos) else
V tomto příkladu bude Funkce find_first_not_of hledat první znak, který není symbolem ' w 'nebo' o 'v řádku" Hello, world!". V tomto případě je to symbol "H". Pokud je takový symbol nalezen, program jej zobrazí na obrazovce, jinak se zobrazí zpráva, že v řádku nejsou žádné znaky, které nejsou znaky 'w' nebo 'o'.
Omezení a zvláštnosti
Metoda Find first not of c() poskytuje funkci pro nalezení prvního znaku v řádku, který není v seznamu znaků c. je však třeba vzít v úvahu následující omezení a funkce této metody:
| Omezení / funkce | Popis |
|---|---|
| Znaky v řádku | Metoda funguje pouze s jedinými znaky v řádku. Pokud je jako argument předán prázdný řetězec nebo řetězec s více znaky, vrátí se hodnota -1. |
| Citlivost na registr | Metoda zohledňuje registr znaků. To znamená, že znaky v seznamu c musí přesně odpovídat symbolům v řádku. Například symbol " A " a " budou považovány za různé symboly. |
| Předávání nesprávných argumentů | V případě přenosu nesprávných argumentů, jako je nulový ukazatel nebo prázdný seznam znaků, není chování metody definováno. |
Vzhledem k těmto vlastnostem je důležité být pozorní při použití metody Find first not of c () a zkontrolovat správnost přenášených hodnot, aby bylo dosaženo očekávaného výsledku.
Podobné funkce v jiných programovacích jazycích
Funkce "Find first not of c" má analogy v různých programovacích jazycích, které umožňují podobné operace při hledání prvního znaku odlišného od daného znaku 'c'.
V programovacím jazyce C++ se funkce "find_first_not_of" používá k nalezení prvního znaku řádku, který není symbolem z dané znakové sady. Tato funkce vrátí pozici nalezeného symbolu nebo -1, pokud takový symbol není nalezen.
V programovacím jazyce Python lze pomocí metody "find" vyhledat první znak, který se neshoduje se symbolem "c". Tato metoda vrací index nalezeného symbolu nebo -1, pokud není znak nalezen v řádku.
V programovacím jazyce Java existuje metoda" indexOf "třídy String, která vám umožní najít index prvního znaku, který se nerovná symbolu 'c'. Pokud tento symbol není nalezen, metoda vrátí hodnotu -1.
Tyto funkce a metody poskytují pohodlný způsob, jak provádět operace hledání prvního symbolu, který se neshoduje s daným symbolem, v různých programovacích jazycích.