| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 779 人关注过本帖
标题:strtok函数,为什么错了,求高人指点
只看楼主 加入收藏
huicpc0876
Rank: 2
等 级:论坛游民
帖 子:69
专家分:50
注 册:2009-7-24
结帖率:92.59%
收藏
已结贴  问题点数:20 回复次数:7 
strtok函数,为什么错了,求高人指点
题目,学会使用strtok函数
第一行输入分隔符号,
接下来输入字符串,输出分割结果。

Sample Input
; :/*三个分割符号,分号,空格,冒号*/
the first; line of input to be parsed
blah!@#$% blah%^@# blah;:*()905
strok        kicks    a*#!!!
 
Sample Output
the
first
line
of
input
to
be
parsed
END
blah!@#$%
blah%^@#
blah
*()905
END
strtok
kicks
a*#!!!
END/*最后输出END*/

百度了好久学这个函数用法写的代码貌似还是不对,高人指点下我吧:
#include"stdio.h"
#include"string.h"/*不会用还是*/
char a[83],b[83];
int main()
{
 char *p;
 gets(a);
 while(gets(b)!=NULL)
 {
    p=strtok(b,a);
    while(b)
    {
     printf("%s\n",p);
     p=strtok(NULL,a);         
    }               
 }   
 printf("END\n");
 //while(1);
 return 0;   
}

我的错误的代码,跑起来不知道是怎么?
搜索更多相关主题的帖子: 高人 
2009-08-12 14:24
Sean仔
Rank: 2
等 级:论坛游民
帖 子:17
专家分:79
注 册:2009-8-10
收藏
得分:0 
#include <string.h>  
#include <stdio.h>  
 
int main(void)  
{  
   char input[16] = "abc,d";  
   char *p;  
   p = strtok(input, ",");  
   if (p)   printf("%s\n", p);   
   p = strtok(NULL, ",");  
   if (p)   printf("%s\n", p);  
   return 0;  
}
这个是基本用法,你比较一下吧。
首次调用时,input必须指向要分解的字符串,随后调用要把input设成NULL。
strtok在input中查找包含在delim中的字符并用NULL('\0')来替换,直到找遍整个字符串。
2009-08-12 15:10
xingchen88
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2009-8-12
收藏
得分:0 
学习了。
2009-08-12 15:15
Sean仔
Rank: 2
等 级:论坛游民
帖 子:17
专家分:79
注 册:2009-8-10
收藏
得分:20 
顺便帮你编好吧- -||有没分呢~
 
#include <string.h>   
#include <stdio.h>   
  
int main(void)   
{   
   char *P;   
   char input[1000]="the first; line of input to be parsedblah!@#$% blah%^@# blah;:*()905strok kicks    a*#!!!";
 
   P = strtok(input,"; :");  
   if (P)   printf("%s\n",P);   
   while(P)  
   {  
   P = strtok(NULL, "; :");   
   if (P)   printf("%s\n", P);   
   }  
   getchar();  
   return 0;   
}  
时间关系没有用什么END结束,读入不用我说了吧,我是一次吧你字符串都复制了,当成3行当一次运算的,你自己比较一下吧!
有没分给的啊?存分打工中!
2009-08-12 15:46
huicpc0876
Rank: 2
等 级:论坛游民
帖 子:69
专家分:50
注 册:2009-7-24
收藏
得分:0 
回复 4楼 Sean仔

我汗了,你很用心啊,你提供那个函数我也看了,但是这个题目输入输出都被你改了啊。。。。
第一行输入的是分割符号,不一定是“; :”,而是输入什么就是什么
后面的字符串也是从键盘输入的,不是事先预定的
2009-08-12 21:22
Sean仔
Rank: 2
等 级:论坛游民
帖 子:17
专家分:79
注 册:2009-8-10
收藏
得分:0 
其实就是第二个串就是要分隔的,你可以用数组来读入,应该可以吧,输入输出我是没有按照(人懒啊),不过大体这样运用的目的我个人认为应该达到了,其实我也是在看到你贴才研究一下这个函数的,其他的要求也和研究这个函数没有太大的联系吧,主要掌握好这个函数老师应该满意了吧
2009-08-12 21:29
huicpc0876
Rank: 2
等 级:论坛游民
帖 子:69
专家分:50
注 册:2009-7-24
收藏
得分:0 
回复 4楼 Sean仔

不过谢谢你,看了你的提示,我发现了自己的错误。呵呵,分数非你莫属了!~~
2009-08-12 21:30
Sean仔
Rank: 2
等 级:论坛游民
帖 子:17
专家分:79
注 册:2009-8-10
收藏
得分:0 
用gets能读入串不能读入空格,所以你的可能出错在这里吧,我猜!今晚看电影,坚决不打开编译器,哇咔咔
2009-08-12 21:32
快速回复:strtok函数,为什么错了,求高人指点
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045733 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved