在写程序时经常要进行字符串分离,我喜欢用strtok这种字符串解析函数。
strtok
原型 char *strtok(char s[], const char *delim);
功能:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。
说明:strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串中包含的所有字符。当strtok()在参数s的字符串中发现参数delim中包涵的分割字符时,则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针。
返回值:从s开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。 所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。
#include <string.h>
#include <stdio.h>
char string[] = " A string/tof , tokens/nand some more tokens ";
char seps[] = " ,/";
char *token;
void main(void)
{
printf(" %s Tokens: \n",string);
token = strtok(string,seps); /**/ /* Establish string and get the first token: */
while(token != NULL)
{
printf(" %s \n",token); /**/ /* While there are tokens in "string" */
token = strtok(NULL,seps); /**/ /* Get next token: */
}
}
运行结果:
A string/tof , tokens/nand some more tokens Tokens:
A
string
tof
tokens
nand
some
more
tokens