关于char *strtok(char *strToken,const char *strDelimit)的疑问
#include <string.h>
#include <stdio.h>
char string[] = "A string\tof ,,tokens\nand some more tokens ";
char seps[] = " ,\t\n ";
char *token;
void main( void )
{
printf( "%s\n\nTokens:\n ", string );
/* Establish string and get the first token: */
token = strtok( string, seps );
while( token != NULL )
{
/* While there are tokens in "string " */
printf( " %s\n ", token );
/* Get next token: */
token = strtok( NULL, seps );
}
}
在token = strtok( NULL, seps )中,它是如何知道拆分的目的串是哪一个呢?如何记录下目的串?
[解决办法]
这个函数用到了静态变量。所以会记录下来的
[解决办法]
没错,静态地
[解决办法]
楼上的很详细了,
在调用时,strtok函数根据第一个参数是否为空来盘盘读是否是第一此调用,如果不为空就用一个静态变量保存
指针的位置,下次再调用是根据其值来分割字符串.不过strtok会改变原字符串的,这点楼主要注意.