cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 3056|回复: 8

[求助] 请高手帮我解答一下sscanf 的问题

[复制链接]
发表于 2012-2-22 11:33:45 | 显示全部楼层 |阅读模式
#include <stdio.h>
int main(int argc, char *argv[])
{
char szStr0[12], szStr1[12], szStr2[12];
    sscanf("www.baidu,com","%[^.],%[^,].%s",szStr0, szStr1, szStr2);
printf("szStr0= %s\n",szStr0);
printf("szStr1= %s\n",szStr1);
printf("szStr2= %s\n",szStr2);
return 0;
}

为什么第二个变量和第三个变量不对呢??
发表于 2012-2-22 12:48:52 | 显示全部楼层
短信联系直径吧,他在行
发表于 2012-2-22 15:03:09 | 显示全部楼层
看不懂……你想用点作为分界符提取字符串?
 楼主| 发表于 2012-2-22 20:23:48 | 显示全部楼层
是啊,,可是总是不成功,,
发表于 2012-2-22 20:37:41 | 显示全部楼层
那么(%s.%s.%s试试?)
发表于 2012-2-22 20:38:15 | 显示全部楼层
试试在括号外面
 楼主| 发表于 2012-2-22 20:57:06 | 显示全部楼层
问题解决了!原来是格式不对!!
sscanf() - 从一个字符串中读进与指定格式相符的数据.   
函数原型:   
int sscanf( const char *, const char *, ...);   
int sscanf(const char *buffer,const char *format,[argument ]...);   
buffer 存储的数据   
format 格式控制字符串   
argument 选择性设定字符串   
sscanf会从buffer里读进数据,依照argument的设定将数据写回。

若sscanf("www.baidu.com","%[^.]%[^.]%s",szStr0, szStr1, szStr2);
输出
szStr0= www
szStr1= .baidu
szStr2= .com

若sscanf("www.baidu.com","%[^.].%[^.].%s",szStr0, szStr1, szStr2);
输出
szStr0= www
szStr1= baidu
szStr2= com

希望对加有用帮助,,
发表于 2012-2-22 21:00:47 | 显示全部楼层
……你终于明白了
发表于 2012-2-22 21:01:46 | 显示全部楼层
注意一下,格式字符串除了%的东西以外都是照样读取的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2024-4-16 14:07 , Processed in 0.069940 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表