当前位置: 首页 > article >正文

sprintf()函数的介绍及其用法

目录

前言

一:sprintf()函数的介绍

二:sprintf()函数的原型

三:sprintf()函数的用法

1.控制输出格式

2.将数字转化成字符串

3.拼接字符串

4.当然,也可以拼接多个数值

5.sprintf()的返回值


前言

sprintf()函数是 C 语言中比较常用的一个函数,当然 C++ 中也是可以使用的,只是需要注意一些格式。

一:sprintf()函数的介绍

sprintf()函数的头文件是 <stdio.h>,当我们需要格式化的数据写入字符串时,它是一个非常有用的工具,可以动态的创建字符串。sprintf()函数将结果存储在字符数组中。sprintf()函数和 printf()函数功能相似,但是 printf()函数打印输出到屏幕上,而 sprintf()函数打印输出到字符串中。

二:sprintf()函数的原型

sprintf(char *str,const char*format,...); 

sprintf()括号中有3个参数:

str:要写入的字符串的指针

format:包含格式控制符的字符串,用于指定输出的格式

. . .  :可变参数列表。根据格式化字符串中指定的格式进行输出

三:sprintf()函数的用法

1.控制输出格式

这个功能是和 printf()差不多的,这里只是为了展示它的功能,一般情况下控制输出格式直接用 printf()就可以了。 

【代码如下】

#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
	double a=37.12345;
	char ch[100];
	sprintf(ch,"%.3f",a);
//其实这里多此一举了,直接用 printf 就可以了,但这里为了展示 sprintf()的用法
	printf("%s",ch);
}

【运行结果】

2.将数字转化成字符串

注意,这里的数字可以是 int 型,也可以是 double、float 型。所以这个函数还是很方便的,(因为像字符串转化成数字的几个函数,比如 atoi()函数,它是只能实现字符串转化成 int 型整数,如果要转化成小数,就不可以,需要用 atof()函数,我之前有一篇文章专门讲的字符串与数字的转化,想要了解的可以去看看)

【代码如下】

#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
	int num=37829;
	char ch[100];
	sprintf(ch,"%d",num);
	printf("%s",ch);
//注意,输出的是字符串,格式字符要随之改变,否则会输出错误
}

【运行结果】

3.拼接字符串

#include <stdio.h>
using namespace std;
int main()
{
	char ch1[]="abcd";
	char ch2[]="efgh";
	char ch3[100];
	sprintf(ch3,"%s%s",ch1,ch2);
	printf("ch1在前: %s\n",ch3);

ch1,ch2的位置不同,拼接的顺序也就不同

	sprintf(ch3,"%s%s",ch2,ch1);
	printf("ch2在前: %s",ch3);
}

【运行结果】

4.当然,也可以拼接多个数值

#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
	int a=123,b=456;
	char ch[100];
	sprintf(ch,"%d%d",a,b);
	printf("a在前: %s\n",ch);

//注意,printf输出时,格式字符始终是 %s,因为始终是存储在字符串数组中的

	sprintf(ch,"%d%d",b,a);
	printf("b在前: %s",ch);
}

【运行结果】

5.sprintf()的返回值

sprintf()函数的返回值是字符串数组中的字符个数,具体看情况分析,不过一般还是用 strlen(ch)直接得到字符串数组的大小,这样更简洁方便。

【代码如下】

#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
	double a=37.12345;
	char ch[100];
	printf("%d",sprintf(ch,"%f",a));
//返回值是 int 型数,注意格式字符是 %d .
}

【输出结果】


http://www.kler.cn/news/318357.html

相关文章:

  • 从入门到精通:PHP 100个关键技术关键词
  • 常用的基于无线射频( UWB)室内定位技术的原理与算法
  • Android View 的绘制流程
  • 获取参数
  • 如何在MATLAB中进行无线通信系统性能分析
  • 构建高效企业客户管理系统:SpringBoot应用
  • 旋转矩阵乘法,自动驾驶中的点及坐标系变换推导
  • Java调用数据库 笔记06 (修改篇)
  • 【JAVA开源】基于Vue和SpringBoot的图书馆管理系统
  • Spring自定义参数解析器
  • weblogic中间件漏洞复现
  • M2型TAM靶向肽CRV; Ahx-CRVLRSGSC ;
  • 【系统架构设计师】设计模式的分类
  • Python 中自动打开网页并点击[自动化脚本],Selenium
  • [Python]案例驱动最佳入门:Python数据可视化在气候研究中的应用
  • C++——用带有默认参数的函数实现,求两个整数或三个整数中的最大数。
  • QT客户端发送HTTP请求此时服务器到底收到了哪些数据?
  • fastson与jackson重点笔记(包入门)
  • Cilium + ebpf 系列文章- XDP (eXpress data Path)(四)
  • 基于jsonpath的JSON数据查找
  • golang学习笔记1-go程序执行流程
  • element-plus表格操作
  • C++之哈希 --- 哈希的应用(位图布隆过滤器)
  • 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器(上)
  • 【软件测试】详解测试中常用的几种测试方法
  • 从更底层的角度理解网站的访问过程
  • 算法打卡:第十一章 图论part05
  • 关于Python升级以后脚本不能运行的问题
  • MongoDB-aggregate流式计算:去重操作
  • Linux下go环境安装、环境配置并执行第一个go程序