免费注册 查看新帖 |

Chinaunix

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

求救:怎样从一个有若干行的文本里取出逗号分隔的字符串? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-12-14 19:59 |只看该作者 |倒序浏览
文本如下:
00020000000000000000,20061216,DB1439,01,3205,00,003,苏州北站,01,3205,00,003,苏州北站,01,3201,00,011,南京中央门站,01,3201,00,011,南京中央门站,苏州北站,90001,安凯,00018,豪大4,47,47,47,0610,15,1  ,1,1,6400,3200,3200,6400,6400,宁沪快客,
00020000000000000000,20061216,DB2087,01,3205,00,003,苏州北站,01,3205,00,003,苏州北站,01,3201,00,011,南京中央门站,01,3201,00,011,南京中央门站,苏州北站,90001,安凯,00018,豪大4,47,47,47,0610,15,1  ,1,1,6400,3200,3200,6400,6400,宁沪快客,

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
2 [报告]
发表于 2006-12-14 20:04 |只看该作者
sscanf(buf,"%[^,]",str);

论坛徽章:
0
3 [报告]
发表于 2006-12-14 21:23 |只看该作者

谢谢楼上:)

你就像神一样的救了我

那我如果要把这些逗号分隔的字段全部取出来放到不同的字符串变量里,该怎么实现呢?

论坛徽章:
0
4 [报告]
发表于 2006-12-14 22:15 |只看该作者

我的文本里逗号前后没有空格的,好像不行,该怎么写呢?跪求了

我的语句是(其中recv_pg是从文本中读出的一行)
sscanf(recv_pg,"%s,%s,%s,%s,%s,%s,%s,%s,%s,%s",tmp, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7, tmp8, tmp9);
结果不能把这些字符串分别赋值给tmp变量,结果是都赋值给了tmp,而从tmp1到tmp9均为空。

论坛徽章:
0
5 [报告]
发表于 2006-12-14 23:02 |只看该作者
//char *p=buf
//temp 假定为二维char数组

while(p){
        sscanf(p,"%[^,]",temp[i]);
        printf("%s\n",temp[i]);
        i++;
        p=strchr(p+1,',');
        if(p)p++;
    }

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
6 [报告]
发表于 2006-12-14 23:11 |只看该作者
sscanf(buf,"%[^,],%[^,]",s1,s2);
另外,%n可以获得当前offset,sscanf返回值为赋值了几次,(%n不算)
这样可以一次次的sscanf过去(这样可以知道可以sscanf几次)

[ 本帖最后由 cjaizss 于 2006-12-14 23:13 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2006-12-14 23:16 |只看该作者
还可以用 strtok函数实现

论坛徽章:
0
8 [报告]
发表于 2006-12-14 23:20 |只看该作者
谢谢各位的帮助

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
9 [报告]
发表于 2006-12-15 08:36 |只看该作者
明显要用strtok实现嘛..

论坛徽章:
0
10 [报告]
发表于 2006-12-15 10:02 |只看该作者
用strtok最简单
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP