免费注册 查看新帖 |

Chinaunix

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

关于sscanf读取数据 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-07-16 15:56 |只看该作者 |倒序浏览
我的数据为:
[try].[delete]
怎么样通过sscanf取得try和delete

谢谢

char *s="[try].[delete]"
char s1[8],s2[16];
后面我该怎么写呢?
sscanf(s,".....",s1,s2);???

论坛徽章:
0
2 [报告]
发表于 2003-07-16 16:34 |只看该作者

关于sscanf读取数据

sscanf(s, "[%[^]]].[%[^]]", s1, s2);

论坛徽章:
0
3 [报告]
发表于 2003-07-17 08:36 |只看该作者

关于sscanf读取数据

怎么看起来想正规表达式呢?楼上的,"[%[^]]].[%[^]]",能否给个详细的解释?有劳了!

论坛徽章:
0
4 [报告]
发表于 2003-07-17 09:13 |只看该作者

关于sscanf读取数据

先把楼主的例子改一下
char *s="1try234delete5"
则:
sscanf(s, "1%[^2]234%[^5]", s1, s2);
现在是否就容易理解了?
1、scanf的format中出现的非转换字符(%之前或转换字符之后的字符),即此例中的1234用来跳过输入中的相应字符;
2、‘[]’的含义与正则表达式中相同,表示匹配其中出现的字符序列;^表示相反。使用[ ]时接收输入的变量必须是有足够存储空间的char、signed char、unsigned char数组。记住[也是转换字符,所以没有s了。

论坛徽章:
0
5 [报告]
发表于 2003-07-17 09:45 |只看该作者

关于sscanf读取数据

假如我有这么一段数据,
222,111,,,787,99
我想这样取数据,s1=222,s2=111,s3="",s4=""s5="787",s6="99"
该怎么实现??

论坛徽章:
0
6 [报告]
发表于 2003-07-17 11:20 |只看该作者

关于sscanf读取数据

我这么写一段代码:
#include "stdio.h"
void main()
{
  char test[]="222,333,444,,,555,666";
  char s1[4],s2[4],s3[4],s4[4],s5[4],s6[4],s7[4];
sscanf(test,"%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,]",s1,s2,s3,s4,s5,s6,s7);
printf("sssa1=%s",s1);
printf("sssa2=%s",s2);
printf("sssa3=%s",s3);
printf("sssa4=%s",s4);
printf("sssa5=%s",s5);
printf("sssa6=%s",s6);
printf("sssa7=%s",s7);
}
运行后
$ test9
sssa1=222sssa2=333sssa3=444sssa4=sssa5=sssa6=sssa7=$
为什么后面读不出来呢??

论坛徽章:
0
7 [报告]
发表于 2003-07-17 11:44 |只看该作者

关于sscanf读取数据

呵呵,这样不行的。s4输入为空,输入缓冲区不会往前走,所以后边都是空了。
这样的东西得用strtok_r。

论坛徽章:
0
8 [报告]
发表于 2003-07-17 11:45 |只看该作者

关于sscanf读取数据

strtok_r是什么东西?

论坛徽章:
0
9 [报告]
发表于 2003-07-17 11:49 |只看该作者

关于sscanf读取数据

Thread-Safe Function of strtok

论坛徽章:
0
10 [报告]
发表于 2003-07-17 11:53 |只看该作者

关于sscanf读取数据

strtok_r,如何使用?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP