首页 > 学院 > 开发设计 > 正文

sscanf & sprintf

2019-11-14 12:33:45
字体:
来源:转载
供稿:网友

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还支持正则表达式,这里不做讨论。

参考自算法笔记。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表