本文共 1436 字,大约阅读时间需要 4 分钟。
sprintf()函数:将格式化的数据写入字符串
格式:int sprintf(char str, char format ,[argument,......]);返回值类型 sprintf(要写入数据的字符串,格式,[变量............])forex:
#include <stdio.h>
#include <math.h>//为了下文中的M_PIint main(){ char str[20];//定义一个字符数组,长度为20int a = 0;//定义一个int类型的a,用来存储sprintf()的返回值a = sprintf(str,"%d",M_PI);puts(str);//输出字符串strprintf("%d\n"a);//输出返回值return 0;}结果为:
3.1415938可以看出
【返回值】成功则返回参数str 字符串长度,失败则返回-1,错误原因存于errno 中。printf(); 和 sprintf(); 比较而言,前者是将格式数据打印在屏幕上,后者是将格式数据打印在字符串中。
printf("%s,%c,%d",x,y,z); //将x,y,z 已 逗号隔开的形式 打印在屏幕上。sprintf(str,"%s,%c,%d",x,y,z) // 将x,y,z 已逗号隔开的形式 写入数组。forex:#include <stdio.h>int main(){ char str[100];char x[15] = "input data";char y = 'T';int z = 100;printf("%s,%c,%d",x,y,z);sprintf(str,"%s,%c,%d",x,y,z);puts(str);return 0;}结果为: input data,T,100 input data,T,100
sscanf();函数 从字符串读取格式化输入
格式:int sscanf(const char str, const char format, ...)返回值类型 sscanf(要读取内容的字符串,格式,.....)forex:
#include <stdio.h>#include <string.h>int main(){ int year,day,a;char month[10],weekday[10],total[100];strcpy(total,"sunday June 15 2018");a = sscanf(total,"%s %s %d %d",weekday,month,&day,&year);//将total里面的数据从左之后取出来,并存储到相应类型的变量中//变量使用的是地址,weekday和month使用的是字符数组首地址,day和year由于是int类型,所以需要加上取地址符printf("%d\n",a)//输出返回值printf("%s %s %d %d\n",weekday,month,day,year);return 0;}结果是:
4sunday June 15 2018sscanf() 与 sprintf() 类比 scanf() 与 printf()
转载于:https://blog.51cto.com/2668980/2137257