c++中怎么分割字符串之strtok 函数

strtok函数

定义 char *strtok(char *s,const char *delim);

strtok()将字符串分割成一个个片段。

s指向要分割的字符串,delim为分割字符串,当strtok()在参数s的字符串中发现到参数delim的分割字符时则会将该字符改为/0字符。

在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回下一个分割后的字符串指针。返回值返回下一个分割后的字符串指针,如果已无从分割则返回NULL。

例子:

CString str;
CStdioFile *f=new CStdioFile(strDataPath,CFile::modeRead);
if (f==NULL)
{
str="Can't open the file: <"+strDataPath+">";
MessageBox(str,"Error!",MB_ICONSTOP);
return;
}
const char * split = " ";//分隔符。或者const char * split = ",* ;"; 即表示遇到,或*或 ;进行分割
char * p;//分割后的字符串
char *cstrLine;//要分解的字符串,即将str转换为字符数组,因为strtok只能分隔字符数组
f->ReadString(str);
cstrLine=(char*) malloc(str.GetLength()+1);
f->SeekToBegin();//指针到开头开始逐行读取并分割字符串
while(f->ReadString(str))
{
strcpy(cstrLine,str);
p = strtok (cstrLine,split);
while(p!=NULL)
{
str=p;
p = strtok(NULL,split);
}
}
f->Close();
delete(f);
f=NULL;


参考:http://www.cnblogs.com/dyufei/archive/2012/01/05/2573902.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值