永发信息网

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

答案:2  悬赏:0  手机版
解决时间 2021-11-20 16:19
  • 提问者网友:兔牙战士
  • 2021-11-20 09:07
C\C++ strtok()函数的使用及字符串处理
最佳答案
  • 五星知识达人网友:第四晚心情
  • 2021-11-20 10:06
strtok = find token in string.
它被设计用于词法分析的前期,token分离的阶段。
你的需求需要一点简单的语法结构的嵌入,所以不适合使用这个函数。
你有几个选择:
1、编写你自己的语法(DSL)解释器。
2、使用某个支持正则表达式匹配的函数库。
3、仅处理这种特别的字符串,就这么机械地匹配吧。
从表述上看,各方案的优劣你也是很容易想清楚的,这里就不详细说了。
全部回答
  • 1楼网友:旧脸谱
  • 2021-11-20 11:12
  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。

追问谢谢你的回答,你给出的例子百度出来很多,基本都一样,但例子实在太简单了。我的问题比那复杂多了……追答那 就 说的详细 一点追问看我的问题补充吧,应该够详细了吧?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯