Funkcja strtok w C

Funkcja strtok w C

„Funkcja strtok () to predefiniowana funkcja biblioteki C, która pozwala nam rozbić struny na wiele ciągów lub zero, najważniejszym punktem, jedno.

Dwa parametry są przekazywane do funkcji strtok (), która jest odpowiedzialna za tokenizację ciągu; Pierwszym parametrem jest ON, który trzyma ciąg, który ma być tokenizowany, podczas gdy drugi to ogranicznik, który zawiera słowo kluczowe lub znak, który zdefiniuje początek i koniec łańcucha, przy którym jest tokenizowany. Funkcja strtok () ignoruje część ogranicznika i po prostu wyświetla ciąg, który jest tuż obok ogranicznika.

Ilekroć wywoływana jest funkcja strtok (), wskaźnik do następnego tokena, który jest oznaczony przez ciąg zerowy, jest zwracany. Kiedy uwzględni koniec ciągu, w którym nie odkryto żadnego tokena, zwróci NULL."

Składnia: m

$ strtok (ciąg, token);

W wspomnianej powyżej składni przekazywane są dwa argumenty: pierwszy parametr „ciąg” jest tym, który jest głównym ciągiem, który ma zostać przeanalizowany, podczas gdy drugi parametr „token” jest ogranicznikiem, który zdefiniuje złamanie punkt ciągu.

Załóżmy, że kiedy funkcja strtok () jest wywoływana po raz pierwszy, zacznie wyszukiwać ograniczenie znaków krok po kroku. Jak wiemy, struny są przechowywane w formie tablicy, która przydziela kolejne adresy pamięci do przechowywania wskaźnika jednego po drugim, który sprawdzi ograniczenie. W przypadku znalezienia ogranicznika rozbije ciąg na segmenty; Jeśli nie zostanie znalezione ograniczenie, będzie wyszukiwał terminator lub wartość zerową, która wskazuje punkt końcowy łańcucha, wówczas zwróci wartość zerową.

Po podzieleniu ciągu nie można go przekonwertować na swój oryginalny stan. Aby temu zapobiec, musimy najpierw skopiować ciąg do bufora, a następnie przekazamy adres bufora do strtok (), aby przez to mogli zachować nasz oryginalny ciąg.

Przykład 1

W tym przykładzie zamierzamy zaimplementować funkcję strtok (), aby przełamać pojedynczy ciąg na wiele segmentów. Przechodząc do naszego pierwszego kroku, w którym deklarujemy pliki nagłówkowe „String.h ”i„ stdio.H". Gdy zamierzamy pracować ze stringami, dlatego konieczne jest dołączenie pliku nagłówka sznurka, chyba że nie jesteśmy w stanie wdrożyć ciągów. Następnie przejście do naszej głównej funkcji, w której zadeklarowaliśmy 3 tablice znaków, które są ciągami [], del [], i zmienną postaci o nazwie mój token.

String [] to tablica znaków, która jest odpowiedzialna za trzymanie ciąg znaków, które zostaną przeanalizowane, aby rozbić go na części. Dell [] jest stałą tablicą znaków, która działa jako ogranicznik, lub możemy powiedzieć, że to znak, który zdefiniuje wskaźnik, w którym to momencie powinien złamać ciąg; W naszym przypadku ogranicznik jest „przecinkiem”. Gdzie trzecia zmienna, Mytoken, jest odpowiedzialna za przechowywanie wartości zwracania funkcji strtok ().

#włączać
#włączać
int main ()
Char String [] = "mój nowy projekt, mój projekt strtok";
const char del [] = ",";
Char *MyToken;
mytoken = strtok (String, del);
podczas gdy (MyToken != Null)
printf („ %s \ n”, MyToken);
mytoken = strtok (null, del);

zwrot (0);

Po pomyślnym ogłoszeniu naszych zmiennych przypisamy zmienne MyToken funkcję strtok (), w której będziemy przekazywać zmienne jako parametr, który już zadeklarowaliśmy powyżej, tablica ciągów i zmienną ogranicznika. Następnie utworzyliśmy pętlę, w której przekazaliśmy naszą zmienną MyToken, która utrzymuje wartość zwracaną funkcji strtok (). Podczas gdy pętla sprawdzi warunek, który zastosowaliśmy; Jeśli MyToken nie jest zerowy, przejdzie do wewnętrznej części pętli While; W przeciwnym razie nie wyświetli żadnego wykonania.

Załóżmy, że nasz stan jest prawdziwy; Następnie wydrukuje ciąg podzielony na segmenty. Z drugiej strony, przypisując MyToken a Strtok (), w której teraz przejdziemy element zerowy i ogranicznik. NULL służy do pouczenia funkcji strtok (), aby zatrzymać parsowanie i zwrócić null /0 za każdym razem, gdy łańcuch jest wykonywany lub odkryto zmienną zerową.

Dopóki cały łańcuch nie zostanie pobrany dla ograniczeń i podzielony na struny zgodnie z zdefiniowanym ograniczeniem, pętla While nie przestanie działać. Wydrukuje ciąg tuż obok każdego ogranicznika i kończy się za każdym razem, gdy odkryto ograniczenie. W naszym przypadku użyliśmy tylko jednego ogranicznika w naszym zdaniu, więc po prostu pęka na dwa segmenty, jak pokazano na poniższym rysunku.

Przykład 2

W tym przykładzie będziemy dzielić tablice strun na wiele segmentów za pomocą przestrzeni jako naszego ogranicznika. W powyższym przykładzie po prostu podzieliliśmy dwa struny na segmenty, ale w tym będziemy używać przestrzeni jako naszego ogranicznika i rozbije ciąg na wiele segmentów.

#włączać
#włączać
int main ()

Char String [] = "Moja funkcja strtok w języku C";
char *strToken;
strToken = strtok (string, „”);
podczas gdy (Strtoken != Null)

printf („%s \ n”, strToken);
strToken = strtok (null, „”);

powrót 0;

Jak pokazano w powyższym kodzie, po prostu dołączyliśmy nasz plik nagłówka; Po uwzględnieniu pliku nagłówka przejdziemy do naszej głównej funkcji, w której zadeklarujemy dwie zmienne znaków, w których jedna będzie odpowiedzialna za trzymanie ciągu, a drugie, które będzie odpowiedzialne za utrzymanie wartości zwrotnej funkcji strtok (). W takim przypadku mamy zmienną „String []”, która przechowuje ciąg, który ma zostać podzielony, podczas gdy „strToken” służy do przechowywania wartości zwracanej funkcji strtok ().

Następnie nazwiemy funkcję strtok (), którą przekazujemy do parametrów, a następnie jeden to ciąg, który ma być analizowany, a drugi to sam ogranicznik; W tym przykładzie ogranicznik jest przestrzenią. Jak pokazano na poniższym rysunku, za każdym razem, gdy odkryto przestrzeń, podzieli sznur na segmenty. Zwajanie nie zostanie wydrukowane pierwszą literą do końca, w którym zostanie znaleziony następny ogranicznik; Wydrukuje cały ten ciąg między ograniczeniami.

Wniosek

W tym przewodniku krótko zbadaliśmy funkcję strtok (), w której opisaliśmy cel funkcji strtok (), a także jej implementację i sposób, w jaki podzielimy pojedynczy ciąg na wiele segmentów za pomocą jednej zmiennej postaci, która jest, która jest SYMITER. Funkcja strtok () jest łatwa w użyciu i interpretacja ciągów. Celem naszego artykułu jest ułatwienie Ci nauki funkcji strtok () z definicji, a także w wielu przykładach.