永发信息网

C\C++ strtok()函数的使用及字符串处理

答案:2  悬赏:0  手机版
解决时间 2021-11-20 16:19
C\C++ strtok()函数的使用及字符串处理
最佳答案
strtok = find token in string.
它被设计用于词法分析的前期,token分离的阶段。
你的需求需要一点简单的语法结构的嵌入,所以不适合使用这个函数。
你有几个选择:
1、编写你自己的语法(DSL)解释器。
2、使用某个支持正则表达式匹配的函数库。
3、仅处理这种特别的字符串,就这么机械地匹配吧。
从表述上看,各方案的优劣你也是很容易想清楚的,这里就不详细说了。
全部回答
  1. strtok介绍
    众所周知,strtok可以根据用户所提供的分割符(同时分隔符也可以为复数比如“,。”)
    将一段字符串分割直到遇到"/0".

  2. 下面给出你一个例子,详细说明一下,应该会更直白的了解:
    比如,分隔符=“,” 字符串=“Fred,John,Ann”
    通过strtok 就可以把3个字符串 “Fred”     “John”      “Ann”提取出来。
    上面的C代码为

QUOTE:

int in=0;
char buffer[]="Fred,John,Ann"
char *p[3];
char *buf = buffer;
while((p[in]=strtok(buf,","))!=NULL) {
                 in++;
                 buf=NULL; }

如上代码,第一次执行strtok需要以目标字符串的地址为第一参数(buf=buffer),之后strtok需要以NULL为第一参数
(buf=NULL)。指针列p[],则储存了分割后的结果,p[0]="John",p[1]="John",p[2]="Ann",而buf就变
成    Fred/0John/0Ann/0。

追问谢谢你的回答,你给出的例子百度出来很多,基本都一样,但例子实在太简单了。我的问题比那复杂多了……追答那 就 说的详细 一点追问看我的问题补充吧,应该够详细了吧?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
现在在沈阳北站,想做333路,从南出口还是北
巴金《永远不能忘记的事情》里面的人和鲁迅有
唐朝是否正式设有里正官职
鸭子常用哪几种香料
沙恩霍斯特级战列舰与金刚级战列舰哪个更厉害
有人知道德莎国际货运代理(上海)有限公司的联
我把玉从手上取下来不小心摔在地上出现了三条
习惯性违章按性质可以分为哪几类?
怎么用C++中的MFC随便画一条直线?老师说修改
周迅演过的最好的电影是哪一部
蜂蜜的营养丰富,蜂有土养和新式养,蜂蜜有煮
梦想只有努力才会实现对不对
游戏社交这个概念靠谱吗?全民点游的圈子能做
柳州10路公交车走哪里
好美亚家居地址好找么,我有些事要过去,
推荐资讯
起航书法艺术培训基地地址在哪,我要去那里办
秦岭印象核桃油怎么样?有没有人吃过啊?
天津哪有好点的Wargame(真人CS)的地方?最好
章丘市事业单位人员能在农村分地吗?法律法规
常州市戚墅堰区惠民门诊部距金坛区有多远
请你――好让造句大全
求耽美小说《舅舅的奴隶生涯》 《我要SM》 《
是否得近视眼要做什么检查
正章干洗(红岭中路)地址在哪,我要去那里办事
心愿菩提能卖多少钱
中国个省份的简称是?
k237次列车到广州火车站是几点
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?