在編程過程當中,有時須要對字符串進行分割。而有效使用這些字符串分隔函數將會給咱們帶來不少的便利。編程
下面我將在msdn中學到的strtok函數作以下翻譯。ide
strtok :函數
在一個字符串查找下一個符號oop
char *strtok( char *strtoken, const char *strdelimit );this
返回值:.net
返回指向在strtoken字符串找到的下一個符號的指針,華夏名網當在字符串找不到符號時,將返回null.每翻譯
次調用都經過用null字符替代在strtoken字符串遇到的分隔符來修改strtoken字符串。指針
參數:token
strtoken:包含符號的字符串字符串
strdelimit:分隔符集合
注:第一次調用strtok函數時,這個函數將忽略間距分隔符並返回指向在strtoken字符串找到的第一個符
號的指針,該符號後以null字符結尾。經過調用一系列的strtok函數,更多的符號將從strtoken字符串中分
離出來。每次調用strtok函數時,都將經過在找到的符號後插入一個null字符來修改strtoken字符串。爲了
讀取strtoken中的下一個符號,調用strtok函數時strtoken參數爲null,這會引起strtok函數在已修改過
的strtoken字符串查找下一個符號。
example(摘自msdn)
點擊(此處)摺疊或打開
/* strtok.c: in this program, a loop uses strtok
* to print all the tokens (separated by commas
* or blanks) in the string named "string".
*/
#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 );
}
}
輸出結果:
a string of ,,tokens
and some more tokens
tokens:
a
string
of
tokens
and
some
more
tokens