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

embedded/2024/9/25 7:12:57/

目录

前言

一: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.ppmy.cn/embedded/116500.html

相关文章

window.onload什么时候执行

window.onload 事件在页面的所有资源&#xff08;包括样式表、脚本文件、图片等&#xff09;都加载完成后立即执行。这意味着&#xff0c;在 window.onload 事件的处理函数中&#xff0c;你可以安全地引用页面上的所有元素&#xff0c;因为此时它们都已经加载到DOM中&#xff0…

OpenMV与STM32通信

在现代嵌入式系统中&#xff0c;图像处理和微控制器的结合成为一种重要趋势。OpenMV模块能够快速处理图像数据&#xff0c;并通过串行接口与STM32微控制器进行通信&#xff0c;从而实现复杂的多功能应用。本指南将介绍如何配置OpenMV与STM32通信&#xff0c;并通过实际案例使读…

0基础学习HTML(十七)字符字体

HTML 字符实体 HTML 中的预留字符必须被替换为字符实体。 一些在键盘上找不到的字符也可以使用字符实体来替换。 HTML 实体 在 HTML 中&#xff0c;某些字符是预留的。 在 HTML 中不能使用小于号&#xff08;<&#xff09;和大于号&#xff08;>&#xff09;&#xff…

JetLinks物联网学习(前后端项目启动)

前后端项目启动 1、后端1.1 pgsql改mysql报错2、elasticSearch7.0版本以上_doc格式取消 2、前端 1、后端 环境准备&#xff1a; 1、window系统7,8&#xff0c;10 。 硬件资源最低要求4c8G&#xff0c;硬盘40G 2、JDK 1.8.0_2xx (需要小版本号大于200) 3、Maven3.6.3 4、Redis …

Go版数据结构 -【1.1 数据结构的分类与基本概念】

1.1 数据结构的分类与基本概念 本节我们将对数据结构的基本概念以及分类进行讲解&#xff0c;数据结构有很多种&#xff0c;但是主要也就是集中于几种类型&#xff0c;本节我们将进行逐一讲解。 什么是数据结构&#xff1f; 按照标准说法&#xff0c;数据结构指的是在计算机…

毕设基于SSM+Vue3实现设备维修管理系统四:后台框架及基础增删改查功能实现

本章介绍后端基础框架及基础的增删改查功能实现&#xff0c;创建基础的dao、service即controller层相关的基类&#xff0c;并实现基础的增删改查相关功能。 源码下载&#xff1a;点击下载 讲解视频&#xff1a; SMMVUE3实现设备维修管理系统毕设&#xff1a;后端框架搭建及表外…

Qt 类型选择器和类选择器的区别

概念上的区别请查看此篇博客&#xff1a;Qt 样式表、选择器、盒子模型&#xff0c;下面我直接举例说明。 示例界面&#xff1a; 1、类型选择器&#xff1a; QWidget {background-color: rgb(255, 85, 127); }运行结果&#xff08;因为QPushButton是QWidget的子类&#xff0…

阿里rtc云端录制TypeScript版NODE运行

阿里云音视频服务云端录制typescript版本; 编译后可以使用 node index.js运行 package.json 版本 // npm install --save alicloud/rtc201801112.3.0 "alicloud/rtc20180111": "^2.3.0",引入 import Client, { StartCloudRecordRequest, StopCloudRecord…