strtok使用小記

char *strtok( char * strToken , const char * strDelimit );

函數用來從字符串中抽取想要的字段,首先看一個MSDN的例子:

 

//輸出字符串中以指定分隔符隔開的字段

#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 );
    //    printf("after modify: %s/n",string);
        /* Get next token: */
        token = strtok( NULL, seps );
    }
}

 

//Output

A string   of ,,tokens
and some more tokens

Tokens:
A
string
of
tokens
and
some
more
tokens

如果去掉上面
行 //    printf("after modify: %s/n",string);前面的註釋符。就會輸出如下:
A string of ,,tokens
and some more tokens

Tokens:
A
after modify: A
string
after modify: A
of
after modify: A
tokens
after modify: A
and
after modify: A
some
after modify: A
more
after modify: A
tokens
after modify: A

發現string已經修改了。(第一次調用strtok,在string裏面的A後面加上了NULL字符,所以這樣了。。。)
strtok第一次調用時,忽略開始的分隔符,返回第一個token的指針,並token後面加上null字符,記以null結尾。如果要得到剩下的字段,
可以繼續調用strtok(),不過第一個參數設爲NULL,第二個參數可根據你記錄的需求來設定。因此,strtok函數可以提取多種分隔符分隔的字段。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章