您的位置:程序门 -> vc/mfc -> 基础类



strtok小小问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


strtok小小问题
发表于:2007-08-18 17:44:09 楼主
#include   <iostream>
using   namespace   std;

void   main()
{
char   str[]   =   "aa@bb@cc;11@22;dd@ff; ";
char*   d   =   "; ";
char*   p   =   strtok(str,d);
while(p)
{
      cout   < <   p   < <   endl;
/* char*   strin   =p;
char*   in   =   "@ ";
        char*   pin   =   strtok(strin,in);
            while(pin)
{
            cout   < <   pin   < <   endl;
            pin   =   strtok(null,in);
}*/               //内循环
                        p   =   strtok(null,d);
  }
}
输出结果:
aa@bb@cc
11@22
dd@ff
如果我想在里面加个内循环
输出结果为什么是
aa@bb@cc
aa
bb
cc
而不是
aa
bb
cc
11
22
dd
ff呢,问题出在哪里了
发表于:2007-08-18 17:49:311楼 得分:0
void   main()
{
char   str[]   =   "aa@bb@cc;11@22;dd@ff; ";
char*   d   =   "; ";
char*   p   =   strtok(str,d);
while(p)
{

char*   strin   =p;
char*   in   =   "@ ";
        char*   pin   =   strtok(strin,in);
            while(pin)
{
            cout   < <   pin   < <   endl;
            pin   =   strtok(null,in);
}
                p   =   strtok(null,d);
}
}
指针为什么不往下走了呢
结果怎么是
aa
bb
cc呢
发表于:2007-08-18 18:03:282楼 得分:0
这函数就是这样的。楼主要结果2可以这样写,
#include   <iostream>
using   namespace   std;

void   main()
{
char   str[]   =   "aa@bb@cc;11@22;dd@ff; ";
char*   d   =   ";@ ";
char*   p   =   strtok(str,d);
while(p)
{
cout   < <   p   < <   endl;
p   =   strtok(null,d);
}
}
发表于:2007-08-18 18:16:213楼 得分:0
能否将aa,bb和cc同时存到一个变量里
发表于:2007-08-18 18:52:004楼 得分:0
为什么没人回答啊,看来这个函数我也用不了了
发表于:2007-08-18 18:59:205楼 得分:0
能不能告诉我用strtok函数取出的值   能否存在一个变量里???????????????
急啊
发表于:2007-08-18 20:10:596楼 得分:0
放在一个数组了就ok   了
发表于:2007-08-18 20:48:387楼 得分:0
不明白啊
发表于:2007-08-19 00:57:058楼 得分:0
再套一个循环,自己分解。
发表于:2007-08-19 10:23:429楼 得分:0
放到数组里以后就得不到各个值   了啊,高手指教
发表于:2007-08-19 11:23:2510楼 得分:0
用法:token   =   strtok(source-str,seperator-str)  
用途:在source-str中找出以seperator-str中的字符为分隔的字符串,即是源串中除去了含有分隔串中的所有字符后余下的一段段的字符串,每调用一次找到一串,找不到则返回空串。  
注意:返回值是指向源串的指针,所以同样要保证源串的有效性,此外,每次调用返回找到的子串的时候都会把源串中该子串的尾部字符(原来是搜索串中的某一字符)修改成 '\0 '字符。还有一个要注意的是,这个函数使用全局的静态缓冲区(函数自己的静态buffer),所以在某一个线程里不要同时调用这个函数来处理两个字符串,否则极易出现不正常的结果,正确的处理方法是先找出一个字符串中的所有子串,然后才转到处理另一个字符串。多线程之间则不会出现这种干扰。
发表于:2007-08-19 12:08:1911楼 得分:0
源代码大全   all   language   source   code     全球最大最全源代码分类网站  
技术支持:腾云驾雾   http://www.tengyunjiawu.net


快速检索

最新资讯
热门点击