sscanf sprintf的用法(个人总结)

sscanf的作用:从一个字符串中读进于指定格式相符的数据。利用它可以从字符串中取出整数、浮点数和字符串

sscanf:

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


说明:

sscanf()会将参数str的字符串根据参数format字符串来转换格式并格式化数据。转换后的结果存于对应的参数。成功则返回参数数目,失败则返回0。

注意:

1.参数不支持string,使用字符串数组。如果想用可以参考使用stringsteam;

2.第二个参数实际上是一个匹配,支持正则表达式,但是部分正则表达式不支持;

  常用匹配:

  1.  *  亦可用于格式中, (即 %*d 和 %*s) 加了星号 (*) 表示跳过此数据不读入. (也就是不把此数据读入参数中);

  2. ^ 为否符号,表示不想匹配的符号;                                      

      如果^放到[]的外边则表示以[]开头的字符串;

  3. |  或运算符

  4.“$” 结束符

常用使用情况:

1.字符串和int类型转换;

int main(){
	char s[8]="123";
	int a;
	sscanf(s,"%d",&a);
	printf("%d",a);       //输出123
} 

 2.取指定字符串长度

int main(){
	char s[8]="abc";
	char a[3];
	sscanf(s,"%2s",&a);
	printf("%s",a);        //输出ab
} 

3.正则匹配情况

 取仅包含指定字符集的字符串(只要有不满足就停止匹配)

int main(){
	char s[8]="11aAbc";
	char a[3];
	sscanf(s,"%[0-9a-z]",&a);
	printf("%s",a);        //输出11a
} 

sprintf与sscanf相对应。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值