C/C++中快速分割字符串函数------strtok()

转自:https://blog.csdn.net/hgj125073/article/details/8447605

【FROM MSDN && 百科】

原型: char *strtok(char *s, const char *delim);

#include<string.h>

分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。

strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串中包含的所有字符。当strtok()在参数s的字符串中发现参数delim中包涵的分割字符时,则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针

s开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。

DEMO:MSDN上的

#include <stdio.h>
#include <string.h>
#include <conio.h>
char string[] = "A string\tof ,,tokens\nand some  more tokens";
char seps[]   = " ,\t\n";
char *token;
int main(void)
{
	printf( "Tokens:\n" );
    token = strtok( string, seps ); 
	while(token !=NULL)
	{
         printf("%s\n",token);
		 token=strtok(NULL,seps);
	}
	getch();
	return 0;
}

DEMO:

#include <stdio.h>
#include <conio.h>
int main(void)
{
	char input[16]="abc,d,yuwen";
	char *p;
	p=strtok(input,",");
    if (p)
    {
		printf("%s\n",p);
    }
	p=strtok(NULL,",");
	if (p)
	{
		printf("%s\n",p);
	}
	getch();
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_16334327/article/details/80922417
今日推荐