Strtok -Funktion in c

Strtok -Funktion in c

„Die Funktion strtok () ist eine vordefinierte C -Bibliotheksfunktion, die es uns ermöglicht, Strings in mehrere Zeichenfolgen oder Null zu zerlegen. Der wichtigste Punkt, während Sie Strings geteilt haben, ist, dass sie nicht leer oder null sein kann.

Zwei Parameter werden an die Funktion strtok () übergeben, die für die Tokens der Zeichenfolge verantwortlich ist. Der erste Parameter ist der Ein, das die Zeichenfolge enthält, die tokenisiert werden soll, während der zweite der Trennzeichen ist, der das Schlüsselwort oder Zeichen hält, das den Start und das Ende der Zeichenfolge definiert, bei der es tokenisiert ist. Die Funktion strtok () ignoriert den Trennzeichen und zeigt einfach die Zeichenfolge, die direkt neben dem Trennzeichen liegt.

Immer wenn die Funktion strtok () aufgerufen wird. Wenn es das Ende der Zeichenfolge ausmacht, in der kein Token entdeckt wird, wird NULL zurückgegeben.”

Syntax: m

$ strtok (String, Token);

In der oben erwähnten Syntax werden zwei Argumente übergeben: Der erste Parameter, „String“, ist derjenige, der die Hauptzeichenfolge ist, die analysiert werden soll, während der zweite Parameter „Token“ der Trenngeber ist, der das Brechen definiert wird Punkt der Zeichenfolge.

Nehmen wir an, wenn die Funktion von Strtok () zum ersten Mal aufgerufen wird, sucht sie Schritt für Schritt nach dem Zeichen des Charakters. Wie wir wissen, werden Saiten in Form eines Arrays gespeichert, das aufeinanderfolgende Speicheradressen zuteil. Falls der Trennzeichen gefunden wird, wird die Saite in Segmente aufgeteilt. Wenn kein Trennzeichen gefunden wird, sucht er nach dem Terminator oder dem Nullwert, der den Endpunkt der Zeichenfolge angibt, und gibt den Nullwert zurück.

Sobald die Zeichenfolge geteilt ist, kann sie nicht in ihren ursprünglichen Zustand umgewandelt werden. Um dies zu verhindern, müssen wir zuerst die Zeichenfolge in den Puffer kopieren, und dann werden wir die Adresse des Puffer an den Strtok () übergeben, damit wir unsere ursprüngliche Zeichenfolge bewahren können.

Beispiel 1

In diesem Beispiel werden wir die Funktion strtok () implementieren, um die einzelne Zeichenfolge in mehrere Segmente zu unterteilen. Überziehen zu unserem ersten Schritt, in dem wir Header -Dateien deklarieren "String".H ”und„ Stdio.H". Da wir mit Strings arbeiten wollen, ist es notwendig, eine String -Header -Datei aufzunehmen, es sei denn, wir können Strings nicht implementieren. Dann wechseln Sie zu unserer Hauptfunktion, wo wir 3 Zeichenarrays deklarierten, die String [], Del [] und die Zeichenvariable namens My Token sind.

String [] ist das Zeichenarray, das dafür verantwortlich ist, eine Zeichenfolge zu halten, die analysiert wird, um es in Teile zu zerbrechen. Das Dell [] ist das konstante Charakter -Array, das als Trennzeichen fungiert, oder wir können sagen, dass es der Charakter ist, der den Zeiger definiert. An diesem Punkt sollte er die Zeichenfolge brechen. In unserem Fall ist der Trennzeichen „Komma“. Wenn die dritte Variable, myToken, für die Speicherung des Rückgabewerts der Funktion der Strtok () verantwortlich ist.

#enthalten
#enthalten
int main ()
char String [] = "Mein neues Projekt, mein Strtok -Projekt";
const char del [] = ",";
char *myToken;
myToken = strtok (String, del);
während (myToken != Null)
printf (" %s \ n", myToken);
myToken = strtok (null, del);

return (0);

Nachdem wir unsere Variablen erfolgreich deklariert haben, werden wir myToken -Variablen die Funktion strtok () zuweisen, in der wir die Variablen als Parameter übergeben werden, die wir bereits oben deklariert haben. Dann haben wir eine Weile geschaffen. Während die Schleife den von uns angewendeten Zustand überprüft; Wenn das MyToken nicht null ist, wird es in den inneren Teil der while -Schleife bewegen; Andernfalls wird keine Ausführung angezeigt.

Nehmen wir an, unser Zustand ist wahr; Dann druckt es die Zeichenfolge, die in Segmente aufgeteilt wird. Andererseits zuweisen myToken eine Strtok () -Funktion, in der wir jetzt das Nullelement und den Trennzeichen übergeben werden. Null wird verwendet, um die Funktion von Strtok () zu unterweisen, das Parsen zu stoppen und Null /0 zurückzugeben, wenn die Zeichenfolge beendet ist, oder eine Nullvariable entdeckt wird.

Bis die gesamte Saite für Grenzwerte abgerufen und gemäß dem definierten Trennzeichen in Saiten zerlegt wird, wird die Schleife nicht aufhören zu arbeiten. Es wird die Zeichenfolge direkt neben jedem Trennzeichen drucken und endet, wenn der Trennzeichen entdeckt wird. In unserem Fall haben wir nur einen Trennzeichen in unserem Satz verwendet, sodass er nur in zwei Segmente einbricht, wie in der Abbildung unten gezeigt.

Beispiel 2

In diesem Beispiel werden String -Arrays in mehreren Segmenten unter Verwendung von Leerzeichen als Trennzeichen aufgeteilt. Im obigen Beispiel haben wir gerade zwei Saiten in Segmente geteilt, aber in diesem Bereich werden wir Räume als Trennzeichen verwenden und eine Zeichenfolge in mehrere Segmente zerlegen.

#enthalten
#enthalten
int main ()

char String [] = "Meine Strtok -Funktion in der C -Sprache";
char *sttoken;
stroToken = strtok (String, "");
während (Strotoken != Null)

printf ("%s \ n", strtoken);
stroToken = strtok (null, "");

Rückkehr 0;

Wie im obigen Code gezeigt, haben wir gerade unsere Header -Datei aufgenommen. Nachdem wir eine Header -Datei eingefügt haben, werden wir in unsere Hauptfunktion eingehen, in der wir zwei Zeichenvariablen deklarieren, in denen einer für das Halten der Zeichenfolge verantwortlich ist, und die zweite, die dafür verantwortlich ist, den Rückgabewert von Strtok () zu halten. In diesem Fall haben wir die Variable "String []", die die zu spaltende Zeichenfolge speichert.

Dann werden wir die Funktion von Strtok () aufrufen, die wir an Parameter übergeben, dann ist einer die Zeichenfolge, die analysiert werden soll, und der zweite ist der Trennzeichen selbst; In diesem Beispiel ist der Trennzeichen Raum. Wie in der folgenden Abbildung gezeigt, wird die Zeichenfolge, wenn der Speicherplatz entdeckt wird, in Segmente aufgeteilt. Der Trennzeichen wird nicht den ersten Buchstaben bis zum Ende gedruckt, an dem der nächste Trennzeichen gefunden wird. Es druckt diese ganze Zeichenfolge zwischen Abgrenzern.

Abschluss

In diesem Handbuch haben wir die Funktion von Strtok () kurz untersucht, in der wir den Zweck der Funktion strtok () sowie deren Implementierung beschrieben haben und wie wir eine einzelne Zeichenfolge unter Verwendung einer einzelnen Zeichenvariablen, die die ist, in mehrere Segmente aufteilen werden Abgrenzer. Strtok () -Funktion ist einfach zu verwenden und zu interpretieren Strings. Der Zweck unseres Artikels ist es, es Ihnen leicht zu erleichtern, die Funktion von Strtok () per Definition sowie anhand mehrerer Beispiele zu lernen.