sscanf分割字符串用法总结

本文主要介绍了在编程中如何使用sscanf函数进行字符串的分割,重点总结了其基本用法,适用于处理配置文件加载等场景。
摘要由CSDN通过智能技术生成

最近一直在写加载配置文件的代码,大多用sscanf函数来分割字符串,学习和总结一下它的用法:

 

基本用法

通过ssacnf()语句可以找到和它前面匹配的语句然后打印出后面需要的东西,基本格式为%[set],表示将接收一个由set指定格式的字符串,其中set表示可接受的字符集合。
set一般有两种情况:
(1)%[^set]表示非,即在输入字符串中匹配不在set字符集合的所有字符,遇见set字符集中的字符即停止;
(2)%[set],匹配输入字符串中所有在set字符集中的字符,遇见非set字符集的字符时即停止。

如:
sscanf(buf,"%[^&]",str); //当输入的字符中出现"&"时停止匹配,如果输入hello&world,则str=hello;
sscanf(buf,"%[^290#]",str); //当输入aidc#ad时,则str=aidc,即当输入出现了"#"时不再将输入内容放入str;
sscanf(buf,"%[dlza#i]",str) //  如果不是这几个字符则停止匹配,如当输入ai#dcad时,str=ai#d,因为c不在[dlza#i]中.
   特殊情况:
   (1)如果要匹配"^"时,当然不能直接放在[]中,所以可以用%[ab^cd]这种方式,
   (2)当要匹配右方括号"]"时,应把其放在set中第一个位置,如"%[]abc]"表示匹配的字符集为{], a, b, c},又如"%[^]abc]"表示匹配所有非"], a, b, c"中的字符
   (3)另外,还可以使用"-" 如%[a-z]表示只匹配abcd....yz等小写的字母;%[0-9]表示只匹配0,1,2...9等数字;
   (4) * 表示跳过.
    注意 :  “-”的字符只有在其左右两边都有有效字符时才有这个作用,否则被认为是普通字符,如“a-c-e-g”匹配的字符为{a, b, c, -, e, f, g},这样也为输入“-”字符提供了方法。

    sscanf函数的高级用法

    sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。
    函数原型:
     int scanf( const char *format [,argument]... );
      其中的format可以是一个或多个:{%[*][width][{h|l|I64|L}]type|'
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值