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 delimje 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;
}

Odkazy: