Jméno
strtok — Vyhledání tokenů v řetězci.
Přehled
#include <string.h>
char *strtok( | str, | |
| delim) ; | |
char | str; |
const char * | delim; |
char *strtok_r( | str, | |
| delim, | |
| saveptr) ; | |
char | str; |
const char * | delim; |
char ** | saveptr; |
Popis
Funkce strtok
rozděluje řetězec na sekvenci tokenů. Při prvním volání musí parametr str
ukazovat na řetězec který chceme rozdělovat. Funkce si tento řetězec zapamatuje. Při dalších voláních se na místě parametru str
předává NULL
.
Argument delim
je množina znaků, které oddělují tokeny.
Příklady použití
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define DELIM " ,.-"
int main() {
FILE *fin;
int lineno=0;
char *token, *p, line[80];
if ((fin = fopen("source", "r")) == NULL) {
perror("source");
exit(1);
}
while (fgets(line, sizeof(line), fin) != NULL) {
if ((p = strrchr(line, '\n')) != NULL) *p = '\0';
printf("%02d: '%s'\n", ++lineno, line);
token = strtok(line, DELIM);
while (token != NULL) {
//DEBUG:printf("line='%s'\n", line);
printf("token='%s'\n", token);
token = strtok(NULL, DELIM);
}
}
return 0;
}