sscanf和sprintf用法

1. sscanf

    //1. 把字符串输出到 abc当中
    int a, b, c;
    sscanf("2013:10:1", "%d:%d:%d", &a, &b, &c);
    printf(" %d %d %d", a, b, c);// 2013 10 1
    // 2. * 跳过  碰到空格停止获取  %*s %*d
    char buf[20];
    int num;
    sscanf("1234 5678", "%*d %s", buf);// 
    printf("%s\n", buf);// 跳过1234 然后隔一个空格获取字符串 5678
    printf("1234 5678", "%*s %d", &num);// 5678

    sscanf("12345678", " %s", buf);// 12345678 
    printf("%s\n", buf);
    // 3. 读指定宽度数据 %[width]s
    char buf[20];
    sscanf("12345678", " %s", buf);// 12345678
    printf("%s\n", buf);

    sscanf("12345678", " %3d", num);// 123
    printf("%s\n", num);
    // 4. 集合操作 只支持获取字符串 %[a-z] 表示匹配a到z中任意字符,直到碰到不在范围内停止获取 或者空格停止获取
    char buf[20];
    sscanf("agcd32DadfggDSDS", "%[a-z]", buf);// 从字符串中获取输入只要'a - z之间的字符
    printf("%s\n", buf);// agcd
    char buf[10];
    sscanf("agcd 32DadfggDSDS", "%[a-z]", buf);
    printf("%s\n", buf);// agcd
    // 5. %[aBC]匹配a、B、c中一员,贪婪性
    //    %[^aBC] 匹配非a、B、c的任意字符
    char buf[10];
    sscanf("agcd32DadfggDSDS", "%[2Da]", buf);
    printf("%s\n", buf);// 2Da

2. sprintf

    char buf[20];
    sprintf(buf, "%d:%d:%d", 2013, 10, 1);
    printf("buf = %s\n", buf);// 2013:10:1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值