Přejít na hlavní obsah

Jak zjistím, kolikrát se podřetězec nachází v řádku v jazyce si?

Jedním z běžných úkolů při práci s textovými daty je výpočet počtu vstupů podstavce do řádku. V tomto článku se podíváme na to, jak lze tento problém vyřešit v programovacím jazyce si.

Nejprve se rozhodneme, co považujeme za podklad a řádek. Podřetězec je sekvence znaků, kterou lze nalézt uvnitř řetězce. Řetězec je sekvence znaků, kterou chceme zkontrolovat, zda neobsahuje podstavec.

V jazyce si existuje několik způsobů, jak tento problém vyřešit. Jedním z nich je využití funkce strstr(). Tato funkce najde první vstup podstavce do řádku a vrátí ukazatel na toto podřazení. Pokud není podřazka nalezena, funkce vrátí NULL.

Pro výpočet počtu vstupů podstavce do řádku lze použít cyklus. Na každé iteraci zavoláme funkci strstr() tím, že jí předáme zbytek řetězce, a pokud výsledek nebude nulový, zvýšíme počítadlo.

Počet schůzek v řádku si

Jedním z nejjednodušších způsobů, jak zjistit počet vstupů podstavce do řetězce, je použití funkce strstr() . Funkce strstr () vrací ukazatel na první vstup podstavce do řádku. Chcete-li vypočítat počet vstupů podstavce, můžete použít cyklus, který vyvolá funkci strstr() pro každý nalezený výskyt a zvýší počet.

Příklad kódu, který demonstruje použití funkce strstr () k výpočtu počtu vstupů "abc" v řádku "abcfabcfabc":

#include #include int main() printf("Количество вхождений подстроки: %d", count);return 0;>

Po provedení tohoto kódu bude vyvedeno číslo 3, protože podřaz " abc "se v řádku" abcfabcfabc " vyskytuje třikrát.

Použití funkcí standardní knihovny si usnadňuje řešení problému počítáním počtu vstupů podstavce do řádku. Je však třeba upozornit, že toto řešení nebere v úvahu možné překrývání vstupů podstavce.

Obecně platí, že výběr vhodného algoritmu závisí na požadavcích a konkrétních podmínkách úkolu a na omezeních a vlastnostech jazyka C.

FunkcePopis
strstr() Najde první vložení podstavce do řádku
strcasestr() Najde první vstup podstavce do řetězce (bez registru znaků)
strspn() Najde Počet po sobě jdoucích znaků z dané množiny na začátku řádku
strcspn() Na začátku řádku najde Počet po sobě jdoucích znaků, které nejsou součástí dané množiny

Algoritmus vyhledávání podřad v řádku v jazyce si

V programovacím jazyce si můžete použít standardní knihovnu řádků k vyhledání podřetězce v řádku. Pokud však chcete implementovat svůj vlastní algoritmus, můžete použít následující přístup:

1. Hledání délky řádku a podstavce:

Nejprve je nutné určit délku původního řádku a podstavce, se kterou jej chcete porovnat. K tomu lze použít funkce strlen() a strnlen ().

2. Porovnání znaků:

Dalším krokem je srovnání každého znaku původního řádku se symboly podřazení. K tomu lze použít smyčku for a funkci strncmp(), která porovnává první n znaků dvou řádků.

3. Zpracování shody:

Pokaždé, když se porovnané znaky shodují, zvětšíme počítadlo shod. Na konci provádění algoritmu bude počet shod obsažen v tomto čítači.

4. Dokončení algoritmu:

Po dokončení porovnání znaků je možné vrátit počet shod nebo je použít k jiným činnostem, jako je nahrazení nalezeného podstavce jinou.

#include #include int countSubstring(const char* str, const char* substr) >return count;>int main()

Tento příklad ukazuje algoritmus vyhledávání "ab" v řádku "abababababab". Výsledek provádění programu bude 4, protože podstavec "ab" se vyskytuje čtyřikrát.