Ciąg C++ zawiera podciąg

Ciag C Zawiera Podciag



W C++ mamy typ danych string i możemy zastosować różne funkcje do wykonania różnych zadań z ciągami. Możemy sprawdzić, czy podciąg znajduje się w oryginalnym ciągu. Można też powiedzieć, że „ciąg zawiera podciąg”. W tym przewodniku poznamy techniki, które pomogą nam znaleźć „ciąg zawierający podciąg”. Funkcje „find()” i „strstr()” pomagają nam w wykonaniu tego zadania w programowaniu w C++.

Przykład 1:

Pliki „iostream” i „string” to pliki nagłówkowe zawarte w tym miejscu, ponieważ musimy pracować z ciągami znaków, a także wprowadzać i wyprowadzać dane. Musimy więc uwzględnić tutaj te pliki nagłówkowe. Następnie dołączamy „przestrzeń nazw std” za pomocą słowa kluczowego „using”. Nie musimy więc umieszczać tego „std” ze wszystkimi funkcjami osobno w naszym kodzie. Następnie wywoływana jest w tym miejscu funkcja „main()”.







Teraz deklarujemy ciąg „str_1” i przypisujemy do tej zmiennej pewne dane ciągu. Następnie inicjujemy także inną zmienną o nazwie „str_2” typu danych „string” i przypisujemy „like” do tej zmiennej „str_2”. Poniżej używamy słowa kluczowego „bool”, aby podać prawdziwe lub fałszywe wyniki. Inicjujemy „stringHasStr” tym typem danych „bool” i wykorzystujemy funkcję „find()”. To przeszukuje „ciąg zawierający podciąg”. „str_1” to pełny ciąg, a „str_2” to podciąg.



Tutaj dodajemy również słowo kluczowe „npos”, które służy do pokazania, że ​​w tym ciągu nie ma żadnych dopasowań. Sprawdza, czy ciąg zawiera podciąg i zapisuje wynik w zmiennej bool „stringHasStr”.



Następnie przechodzimy do warunku „if” i przekazujemy zmienną „stringHasStr” do tego warunku „if”. Jeśli wynik zapisany w tej zmiennej bool jest „prawdą”, stosowana jest instrukcja po warunku „if”, w którym wykorzystujemy „cout” i wyświetlamy znaleziony tutaj ciąg znaków. Jeśli jednak w tej zmiennej bool zostanie zapisany „fałszywy” wynik, druga część zostanie wykorzystana i wyświetli, że nie znaleziono tutaj ciągu znaków.





Kod 1:

#include
#include

używając przestrzeni nazw std;
int główny ( )
{
ciąg str_1 = „Lubię język programowania C++” ;
ciąg str_2 = 'tak jak' ;
bool stringHasStr = str_1.find ( str_2 ) ! = ciąg::npos;
Jeśli ( ciągHasStr ) {
cout << „Znajdujemy tutaj ciąg znaków, który jest” << str_2 << koniec;
}
w przeciwnym razie {
cout << „Nie znaleziono ciągu” << koniec;
}
powrót 0 ;
}



Wyjście:

To dane wyjściowe renderuje, że ciąg zawiera podciąg i wyświetla go tutaj. Sprawdzamy to za pomocą funkcji „find()”.

Przykład 2:

Dołączamy tutaj trzy pliki nagłówkowe: „iostream”, „string” i „cstring”. Następnie wywołaj „main()” po umieszczeniu „przestrzeni nazw std”. Ciąg „new_str” jest teraz zadeklarowany i przypisane są pewne dane ciągu.

Następnie inicjujemy drugą zmienną typu „string” o nazwie „sub_str” i nadajemy jej wartość „very”. Następnie umieszczamy „const char*”. Zatem zmiana wartości wskaźnika tak, aby wskazywał inne miejsce w pamięci, jest niemożliwa. Deklarujemy tutaj zmienną „FindingStr” jako wskaźnik „const char*”. Inicjujemy go metodą „strstr()” i przekazujemy oba ciągi znaków wraz z funkcją „c_str()”, która przekształca ciąg znaków w tablicę znaków zakończoną wartością null. Ta metoda „strstr()” pomaga sprawdzić, czy ciąg „new_str” zawiera podciąg „sub_str”, czy nie. Następnie mamy „if”, w którym dodajemy „FindingStr”. Jeśli znajdzie podciąg w oryginale, instrukcja po „if” zostanie wykonana, gdy użyjemy „cout”. Jeśli podciąg nie zostanie znaleziony, przesuwa się bezpośrednio w stronę części „else” i wypisuje wynik, który jest umieszczany po części „else”.

Kod 2:

#include
#include
#include

używając przestrzeni nazw std;
int główny ( )
{
ciąg nowy_str = „Na zewnątrz pada deszcz i pogoda jest bardzo przyjemna”. ;
ciąg sub_str = 'bardzo' ;
znak stały * FindStr = strstr ( nowy_str.c_str ( ) , sub_str.c_str ( ) ) ;
Jeśli ( ZnalezienieStr ) {
cout << „Znajdujemy ciąg znaków, a ciąg znaków to: „ << sub_str << koniec;
}
w przeciwnym razie {
cout << „Nie znaleziono ciągu” << koniec;
}
powrót 0 ;
}

Wyjście:

Możemy zauważyć, że podany ciąg zawiera podciąg, ponieważ wyświetla instrukcję, którą dodaliśmy po „if” i wypisuje tutaj podciąg. Sprawdzamy to za pomocą funkcji „strstr()”.

Przykład 3:

Inicjujemy tutaj dwie zmienne łańcuchowe: „myNewStr” i „mySubStr”. Następnie przypisujemy trochę danych stringowych i deklarujemy dwie zmienne całkowite: „posOfStr” i „indexOfStr”.

Poniżej używamy pętli „while()” i przypisujemy zmienną funkcji „find()” do zmiennej „indexOfStr” wewnątrz tej pętli „while()”. Do tej funkcji „find()” przekazujemy dwie zmienne, którymi są „mySubStr” i „posOfStr”. Następnie umieszczamy słowo kluczowe „npos”, które sprawdza, czy wynik funkcji „znajdź” nie jest równy „npos”. Następnie używamy funkcji „cout”, która zwiększa wartość indeksu o jeden i zapisuje ją w zmiennej „posOfStr”.

Kod 3:

#include
#include

używając przestrzeni nazw std;
int główny ( ) {
ciąg mójNowyStr = „tutaj znajdujemy ciąg” ;
ciąg mySubStr = 'strunowy' ;
int pozOfStr = 0 ;
int indeksOfStr;
chwila ( ( indeksOfStr = mojeNoweStr.znajdź ( mySubStr, posOfStr ) ) ! = ciąg::npos ) {
cout << „Podciąg to” << „” << mySubStr << „” << ' Znaleziono pod numerem indeksu: ' << indeksOfStr << koniec;
posOfStr = indeksOfStr + 1 ;
}
powrót 0 ;
}

Wyjście:

Tutaj pokazuje, że dany ciąg zawiera podciąg, a numer indeksu tego ciągu to „19”, co jest również wyświetlane w tym wyniku.

Przykład 4:

W tym kodzie dołączamy plik nagłówkowy „bits/stdc++.h”. Teraz nie musimy dołączać innych plików nagłówkowych, ponieważ zawierają one wszystkie wymagane biblioteki. Po wywołaniu funkcji „main()” inicjujemy zmienne „org_str” i „sub_str” typu danych „string”. Następnie dodajemy warunek „if”, w którym wykorzystujemy funkcję „strstr()”. Ta funkcja sprawdza, czy podany ciąg zawiera żądany podciąg. Następnie dodajemy instrukcję „cout”, aby wydrukować informację, że w tym miejscu znajduje się podciąg. Następnie dodajemy również część „else”, która jest wykonywana tylko wtedy, gdy warunek „if” nie jest spełniony lub w ciągu nie znaleziono podciągu.

Następnie deklarujemy zmienną „sub_str2” i przypisujemy tutaj dane typu string. Następnie wstawiany jest warunek „if” i używana jest funkcja „strstr()”. Ta metoda sprawdza, czy dostarczony ciąg zawiera żądany podciąg. Wynik jest następnie drukowany tutaj za pomocą polecenia „cout”. Uwzględniamy także sekcję „else”, która jest uruchamiana tylko wtedy, gdy warunek „if” nie jest spełniony lub jeśli podciągu nie można zlokalizować w ciągu.

Kod 4:

#include
używając przestrzeni nazw std;
int główny ( ) {
ciąg or_str = „Język programowania C++” ;
ciąg sub_str = 'Program' ;
Jeśli ( strstr ( org_str.c_str ( ) ,sub_str.c_str ( ) ) )
{
cout << „Podciąg tutaj to” << „” << sub_str << „” << „jest obecny w” << org_str << koniec;
}
w przeciwnym razie {
cout << „W ciągu nie ma podciągu.” << koniec;
}
ciąg sub_str2 = 'Jawa' ;

Jeśli ( strstr ( org_str.c_str ( ) ,sub_str2.c_str ( ) ) )
{
cout << „Podciąg tutaj to” << „” << sub_str2 << „” << „jest obecny w” << org_str << koniec;
}
w przeciwnym razie {
cout << „W tym ciągu nie ma podciągu.” << koniec;
}
powrót 0 ;
}

Wyjście:

Wynik pierwszej funkcji „strstr()” pokazuje, że ciąg zawiera podciąg, ale wynik drugiej funkcji „strstr()” pokazuje, że podciąg nie występuje w ciągu.

Wniosek

W tym przewodniku dokładnie omówiono koncepcję „ciąg zawiera podciąg”. Przeanalizowaliśmy dwie metody pomagające w wyszukiwaniu, czy „ciąg zawiera podciąg”. Wyjaśniliśmy funkcje „find()” oraz „strstr()”, które C++ udostępnia w tym przewodniku do wykonania tego zadania. Pokazujemy to na unikalnych przykładach, w których nauczyliśmy się korzystać z tych funkcji, aby sprawdzić, czy „ciąg zawiera podciąg”.