strtok.c

来自「操作系统SunOS 4.1.3版本的源码」· C语言 代码 · 共 44 行

C
44
字号
#if !defined(lint) && defined(SCCSIDS)static	char sccsid[] = "@(#)strtok.c 1.1 92/07/30 SMI"; /* from S5R2 1.2 */#endif/*LINTLIBRARY*//* * uses strpbrk and strspn to break string into tokens on * sequentially subsequent calls.  returns NULL when no * non-separator characters remain. * `subsequent' calls are calls with first argument NULL. */#define	NULL	(char*)0extern int strspn();extern char *strpbrk();char *strtok(string, sepset)char	*string, *sepset;{	register char	*p, *q, *r;	static char	*savept;	/*first or subsequent call*/	p = (string == NULL)? savept: string;	if(p == 0)		/* return if no tokens remaining */		return(NULL);	q = p + strspn(p, sepset);	/* skip leading separators */	if(*q == '\0')		/* return if no tokens remaining */		return(NULL);	if((r = strpbrk(q, sepset)) == NULL)	/* move past token */		savept = 0;	/* indicate this is last token */	else {		*r = '\0';		savept = ++r;	}	return(q);}

⌨️ 快捷键说明

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