sscanf & sprintf

sscanf和sprintf是用来处理字符串问题的利器,从构词上它们可以看成是string+scanf / string+printf。

记录sprintf & sscanf 之前,先来回顾一下printf & scanf:
如果想要从屏幕输入int型变量n并将int型变量n输出到屏幕上,写法如下:

scanf(“%d”, &n);
printf(“%d”, n);

事实上,上面的写法可以表示成下面的样子,其中screen表示屏幕:

scanf(screen, “%d”, &n);
printf(screen, “%d”, n);

可以看出:

scanf的输入其实是把screen的内容以%d的格式传输到n中(从左至右)
printf的输出则是把n以%d的格式传输到screen上(从右至左)

sscanf和sprintf与上面的格式是相同的,只不过把screen换成了字符数组(假设定义了一个char数组str[100]),如下所示:

sscanf(str, “%d”, &n);
sprintf(str, “%d”, n);

下面举例说明sscanf & sprinf的使用

/*
**sscanf的应用 
*/
#include<stdio.h>

int main(){

    char str[100] = "2048:3.14,hello";
    int INT;
    double DOUBLE;
    char STR[100];

    sscanf(str, "%d:%lf,%s",&INT,&DOUBLE,STR);  //切记不遗漏"&" 

    printf("INT = %d, DOUBLE = %.2f, STR = %s\n",INT, DOUBLE, STR);

    return 0;
}
输出结果:
INT = 2048, DOUBLE = 3.14, STR = hello
/*
**sprintf 的应用 
*/
#include<stdio.h>

    int INT = 12;
    double DOUBLE = 3.1415;
    char STR[100] = "Good";

    char str[100];

    sprintf(str,"%d:%.2f,%s",INT, DOUBLE, STR); 

    printf("%s",str);

    return 0;
}
输出结果:
12:3.14,Good

sscanf还支持正则表达式,这里不做讨论。

参考自算法笔记

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值