免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2731 | 回复: 7
打印 上一主题 下一主题

[C] strtok不能将重复的分割符号当做一个分割符,那位有高招避免 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-09 11:17 |只看该作者 |倒序浏览
const char * data = "hello,china, nuix,net,,,,bbs";
char *p =data;
char *pOut = NULL;

pOut = strtok(p, ",");


循环取的话,pOut会得到"bbs",我想在",,,,"后面的内容都不要了,返回NULL;
那位给各好办法呀 ?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2009-06-09 11:27 |只看该作者
先strstr搜索一下,截短, 然后再strtok

论坛徽章:
0
3 [报告]
发表于 2009-06-09 11:40 |只看该作者
strtok不一定好用,getopt呢?
或者?可以自己一个char一个char的read进去,然后分析么?

论坛徽章:
0
4 [报告]
发表于 2009-06-09 11:50 |只看该作者
原帖由 dynamic516 于 2009-6-9 11:17 发表
const char * data = "hello,china, nuix,net,,,,bbs";
char *p =data;
char *pOut = NULL;

pOut = strtok(p, ",");


循环取的话,pOut会得到"bbs",我想在",,,,"后面的内容都不要了,返回NULL;
那位 ...

应该挺多办法的,找到,,后,给个\0,之后再操作!
就像楼上说得一个个分析也不复杂!

论坛徽章:
0
5 [报告]
发表于 2009-06-10 09:40 |只看该作者
我没看出标题和主贴之间的联系,是我的理解能力出了问题吗...

论坛徽章:
0
6 [报告]
发表于 2009-06-10 09:44 |只看该作者
sscanf( data, "%[^,],%[^,], %[^,],%[^,]%*s", str1, str2, str3, str4 );

论坛徽章:
0
7 [报告]
发表于 2009-06-10 10:35 |只看该作者
把",,,,"改成别的字符表示

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
8 [报告]
发表于 2009-06-10 23:05 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP