sscanf用法详解

sscanf是从字符串中读取指定整型,浮点型及其他指定数据类型的函数
sscanf和scanf的不同是,前者是从字符串中读取。后者是从键盘输入中读取

 
sscanf的定义

int sscanf (const char *str, const char * format,…);

这就是说括号里面填写的必须是指针,整型变量也需要加上取值符&
 
1、将字符串转化为整型数据

#include<iostream>
using namespace std;
int main()
{
 int n=0;
 char s[]="34566";
 sscanf(s,"%d",&n);
 cout<<n+1;
 return 0;
}

为了判断是否成功转化为整型,把转化结果加1输出,34566变成了34567,而字符串加一不是这样的
 

2、读取指定长度字符串

#include<iostream>
using namespace std;
int main()
{
 int n=0;
 char s[]="ahvx34566scc",s2[100];
 sscanf(s,"%6s",s2);
 cout<<s2;
 return 0;
}

输出结果

ahvx34

 

3、读取到某个字符时停止

#include<iostream>
using namespace std;
int main()
{
 int n=0;
 char s[]="ahvx34566scc",s2[100];
 sscanf(s,"%[^4]",s2);
 cout<<s2<<endl;
 return 0;
}

输出结果:ahvx3
 
读取到空格时停止

#include<iostream>
using namespace std;
int main()
{
 int n=0;
 char s[]="ahvx34 566scc",s2[100];
 sscanf(s,"%[^ ]",s2);
 cout<<s2<<endl;
 return 0;
}

结果:ahvx34
 
4、跳过某类字符
%*d就表示跳过整型

#include<iostream>
using namespace std;
int main()
{
 int n=0;
 char s[]="34566ahvx",s2[100];
 sscanf(s,"%*d%s",s2);
 cout<<s2<<endl;
 return 0;
}

跳过整型读取字符型
 
5、读取某类字符
 
%[a-z]表示读取小写字母
%[1-9]表示读取数字

#include<iostream>
using namespace std;
int main()
{
 int n=0;
 char s[]="34566ahvx",s2[100];
 sscanf(s,"%[1-9]",s2);
 cout<<s2<<endl;
 return 0;
}

结果:34566

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值