Die strtok Funktion
Die strtok Funktion wird verwendet, um das folgende Zeichen in einer Zeichenkette zu finden. Das Zeichen wird durch eine Liste der möglichen Begrenzungen spezifiziert.
Das folgende Beispiel liest eine Linie des Textes von einer Akte und stellt ein Wort mit den Begrenzungen, dem Raum, dem Vorsprung und dem neuen Zeilen- fest. Jedes Wort wird dann auf einer unterschiedlichen Linie angezeigt:
#include <stdio.h>
#include <string.h>
int main()
{
FILE *in;
char line[80];
char *delimiters = " \t\n";
char *token;
if ((in = fopen("C:\\text.txt", "r")) == NULL)
{
puts("Unable to open the input file");
return 0;
}
/* Jede einzeln Linie lesen */
while(!feof(in))
{
/* Eine Linie erhalten */
fgets(line, 80, in);
if (!feof(in))
{
/* Die Anordnung in Wörter brechen */
token = strtok(line, delimiters);
while (token != NULL)
{
puts(token);
/* Das folgende Wort erhalten */
token = strtok(NULL, delimiters);
}
}
}
fclose(in);
return 0;
}
Es über Programm, in = fopen („C:\ \ text.txt“, „r“), öffnet sich und vorhandene Akte C:\ \ text.txt. Wenn nicht im spezifizierten Weg oder aus irgendeinem Grund besteht, könnte die Akte nicht geöffnet werden, eine Fehlermeldung wird angezeigt auf Schirm.
Das folgende Beispiel betrachten, das einige dieser Funktionen verwendet:
#include <stdio.h>
#include <string.h>
void main()
{
char line[100], *sub_text;
/* Zeichenkette initialisieren */
strcpy(line,"hello, I am a string;");
printf("Line: %s\n", line);
/* Ende der Zeichenkette hinzufügen */
strcat(line," what are you?");
printf("Line: %s\n", line);
/* Entdeckunglänge der Zeichenkette */
/* strlen holt zurück */
/* Länge als Art size_t */
printf("Length of line: %d\n", (int)strlen(line));
/* Entdeckungvorkommen von Teilketten */
if ( (sub_text = strchr ( line, 'W' ) )!= NULL )
printf("String starting with \"W\" ->%s\n",
sub_text);
if ( ( sub_text = strchr ( line, 'w' ) )!= NULL )
printf("String starting with \"w\" ->%s\n",
sub_text);
if ( ( sub_text = strchr ( sub_text, 'u' ) )!= NULL )
printf("String starting with \"w\" ->%s\n",
sub_text);
}
Der Ausgang des Programms wird angezeigt, wie folgt:
Line: hello, I am a string;
Line: hello, I am a string; what are you?
Length of line: 35
String starting with "w" ->what are you?
String starting with "w" ->u? |
|