strtok.c

来自「基于4个mips核的noc设计」· C语言 代码 · 共 60 行

C
60
字号
/* strok: * Get next token from string s (NULL on 2nd, 3rd, etc. calls), * where tokens are nonempty strings separated by runs of * chars from delim.  Writes NULs into s to end tokens.  delim need not * remain constant from call to call. */#include <string.h>char *				/* NULL if no token left */strtok(char *s1, register const char *s2){	register char *scan;	char *tok;	register const char *dscan;	static char **scanpointp;	if (s1 == NULL && *scanpointp == NULL)		return(NULL);	if (s1 != NULL)		scan = s1;	else		scan = *scanpointp;	/*	 * Scan leading delimiters.	 */	for (; *scan != '\0'; scan++) {		for (dscan = s2; *dscan != '\0'; dscan++)			if (*scan == *dscan)				break;		if (*dscan == '\0')			break;	}	if (*scan == '\0') {		*scanpointp = NULL;		return(NULL);	}	tok = scan;	/*	 * Scan token.	 */	for (; *scan != '\0'; scan++) {		for (dscan = s2; *dscan != '\0';)	/* ++ moved down. */			if (*scan == *dscan++) {				*scanpointp = scan+1;				*scan = '\0';				return(tok);			}	}	/*	 * Reached end of string.	 */	*scanpointp = NULL;	return(tok);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?