STRNCMP C ++

STRNCMP C ++
Ciągi są główną częścią języka C ++, ponieważ zawiera wiele wbudowanych funkcji, aby wykonywać określone zadania na tych strunach. Możesz tworzyć podkłady, sprawdzić ich rozmiary i powiązać je ze sobą. Porównanie ciągów jest najczęściej używaną koncepcją w C++. Aby to zrobić, C ++ wymyślił funkcję strncmp (). Jest dość łatwy w użyciu z instrukcjami if-else w kodzie. Dlatego omówimy jego działanie w Ubuntu 20.04 System. Zacznijmy od nowej generacji plików C ++ z instrukcją dotyku na powładzie i otwórz ją słowem kluczowym „Nano”.

Przykład 01:

Zacznijmy od pierwszego przykładu, który użyje funkcji STRNCMP (). Kod rozpoczął się od włączenia biblioteki C ++. Uwzględnione przez nas biblioteki nagłówka to „iostream” i „string.h ”do użycia funkcji strumienia i strumienia Input-output bezpośrednio w kodzie. Przestrzeń nazw C ++ „STD” jest niezbędna do dodania w kodzie, aby korzystać z instrukcji „CIN” i „Cout”. Cały kod został wykonany w ramach funkcji Main (). Zaczęliśmy więc od deklaracji i inicjalizacji zmiennych łańcuchowych typu dwuparakowego o rozmiarze 30, i.mi. S1 i S3. Oba pliki zawierają w nich wartości typu ciągów, i.mi. w połowie tego samego i pół innego. Funkcja strncmp () została wywołana w celu porównania obu zmiennych S1 i S2.

To wywołanie funkcyjne wykorzystano zarówno zmienne S1, jak i S2 w argumentach, jak i liczbie elementów, które chcemy porównać, i.mi. 9. Liczba równych znaków dla obu ciągów zwróconych przez funkcję strncmp () zostanie zapisana do zmiennej liczby całkowitych „i”. Oto oświadczenie „IF-Else”, aby sprawdzić, czy zwrócona liczba równych znaków wynosi zero, mniej niż 0, czy większa niż 0. Jeśli liczba „i” jest równa zero, instrukcja Cout wyświetli ciąg równe wyjście. Oznacza to, że do tej pory nie znaleziono niezrównanych znaków. W przeciwnym razie instrukcja „cout” wyświetli, że ciągi nie są równe.

Po tej kompilacji kodu z G ++ i wykonaniem z „./A.OUT „polecenie, mamy wynik, pokazując, że oba ciągi są równe do pierwszych 9 znaków w każdym.

Zmieńmy liczbę znaków, które należy porównać między obiema strunami. Więc wykorzystaliśmy ten sam kod dla C++. Zaktualizowaliśmy tutaj funkcję strncmp (), zastępując jej trzeci argument. Zastąpiliśmy 9 na 14, aby porównać sumę pierwszych 14 znaków z obu ciągów.

Po zaktualizowanej kompilacji kodu i uruchomieniu otrzymaliśmy poniższe wyjście. Ponieważ ciąg 1 różni się od ciągów 2, jego 10th Wyświetla się, że oba ciągi nie są równe po pierwszych 9 znakach.

Przykład 02:

Rzućmy okiem na inny przykład funkcji STRNCMP () pracujący nad różnymi rodzajami strun. Tym razem będziemy patrzeć na dwa te same struny typu o różnych przypadkach. Tak więc rozpoczęliśmy ten przykład od tych samych nagłówków i przestrzeni nazw C ++ przed implementacją funkcji Main (). W ramach metody main () 2 ciągów typu znaków zostały zainicjowane z wartościami ciągu; Oba są takie same pod względem postaci, ale różne w przypadku typów, i.mi. wyżej i niżej. Metoda STNCMP () została wywołana, aby sprawdzić, czy oba ciągi są równe pierwszym 5 znakom. Oświadczenie „IF-Else” będzie działać odpowiednio, ja.mi. równe lub nie równe. Zapiszmy i wykonajmy ten kod, aby aktualizacja działa poprawnie lub nie.

Najpierw skompilowaliśmy ten kod i wykonaliśmy go później. W zamian mamy, że ciągi nie są równe. Dowodzi to, że funkcja strncmp () zwraca 0 wtedy. W przeciwnym razie zwróci wartość mniejszą lub równą 0.

Dlatego zaktualizowaliśmy wartości ciągów w kodzie o tych samych typach i znakach. Po inicjalizacji ciągów nazywamy metodą STRNCMP (), aby porównać oba ciąg do ostatniego znaku. Dodaliśmy tutaj zagnieżdżone oświadczenie „IF-Else”, aby sprawdzić więcej niż 1 warunek. Jeśli wartość zwracana jest równa 0, zwróci, że ciągi są równe wraz z wyświetlaniem zwróconej wartości. W przeciwnym razie, jeśli zwrócona wartość porównawcza jest większa lub mniejsza niż 0, będzie działać odpowiednio i wyświetli tę konkretną zwróconą wartość.

Po kompilacji i wykonaniu tego zaktualizowanego kodu otrzymaliśmy komunikat „Strings są równe” i zwróconą wartość, i.mi. 0.

Przykład 03:

Zrobiliśmy ze wszystkimi przykładami za pomocą funkcji strncmp (), aby sprawdzić, czy dwa ciągi są równe, czy nie. Tym razem będziemy patrzeć na funkcję strncmp (). Użyjemy jednego dużego ciągu i jednego małego ciągu w kodzie. Więc zaczynaliśmy nasz przykład z iostream i smyczką.H Biblioteki nagłówka za pomocą słowa kluczowego „#Include” z oboma. Po dodaniu przestrzeni nazw, uruchamialiśmy funkcję Main () z dwiema zmiennymi warstwami inicjalizacji.

String S1 zawiera więcej niż 5 znaków, a String S2 zawiera tylko 5. Funkcja strncmp () została wykonana z prostą funkcją zwaną przekazaniem obu zmiennych do argumentu. Liczba dopasowanych znaków jest ustawiona na 5. Funkcja strncmp () porówna obie zmienne i zwróci konkretny wynik. Ponieważ nasz pierwszy ciąg jest większy niż 2Nd ciąg i nie pasuje do 2Nd String, zatem zostanie wykonana część instrukcji „i> 0”. W zamian wykaże, że „S1 jest większy niż S2” wraz z zwróconą wartością „I” dla kilku niedopasowanych znaków.

Po uruchomieniu tego kodu na powłoce mamy wynik zgodnie z oczekiwaniami, ja.mi. Z drugiej strony S1 jest większy niż S2, wartość „i” jest zwracana jako „32”.

Ogólny kod tego przykładu pozostanie taki sam, jak w powyższym kodzie. Jedyną zmianą, jaką tu mamy, jest wymiana wartości ciągów ze sobą. Teraz ciąg S2 jest większy niż String S1. W takim przypadku należy wykonać ostatnią instrukcję. Uruchommy ten kod teraz.

Po tej kompilacji kodowej i wykonaniu widzieliśmy, że końcowa część kodu została wykonana po wywołaniu funkcji strncmp (). Pokazuje, że pierwszy ciąg jest mniejszy niż drugi ciąg, podczas gdy żaden z znaków dokładnie się nie pasuje.

Wniosek:

W końcu zakończyliśmy wyjaśnienie funkcji STNCMP () C ++, aby porównać dwa ciągi. Omówiliśmy metodę STRNCMP () z różnymi rodzajami ciągów, i.mi. jeden większy niż drugi wielkość, te same sznurki i różne sznurki. Do tej pory wykorzystano proste i zagnieżdżone instrukcje „IF-Else”, aby nasz kod sprawdził różne warunki dla ciągów i zwróconych wartości metodą STRNCMP (). Ze względu na prostotę naszych przykładów mamy nadzieję, że łatwo będzie ci się nauczyć i wdrożyć.