万能的sprintf

2023-05-16

0.前言

        先推荐一本书,政治书籍《政治的人生》,算是一本日记题材。是现任,作者大家百度一下就知道了,这里不宜过多说明。从这本书里,可以看出来现在的社会——这本书是30年前的。大佬就是大佬,不愧是三代军师。想要的私聊,不方便分享。

        切回正题。sprintf,官方解释就不说了,就是一个打印函数而已。但是,是super_printf()。我们知道printf()是打印到标准输出,这个sprintf可以输出到任何你想输出的地方(夸张一下)。


1.整形转换为字符型

        直接看代码。

    char a[10];
    int num=123;
    sprintf(a,"%d",num);
	 
    printf("%s",a);

        sprintf(字符串地址,整形,整数);即把num按照%d的方式输出到字符串a中。

2.拼接字符串

    char str1[10]="hello";
    char str2[10]="world";
    char str[20];
    
    sprintf(str,"%s%s",str1,str2);
    
    printf("%s",str);

结果:
helloworld
--------------------------------
Process exited after 0.1517 seconds with return value 0
请按任意键继续. . .

        从这里就可以看出来,你可以任意添加你想要输进去的整数型或者字符串。比如

    char str1[10]="hello";
    char str2[10]="world";
    char str[20];
    
    sprintf(str,"%s%s+%d+%s",str1,str2,66,"good");
    
    
    printf("%s",str);

结果:
helloworld+66+good
--------------------------------
Process exited after 0.0198 seconds with return value 0
请按任意键继续. . .

        但是要注意大小。

        printf能做的这个都可以做,左对齐右对齐什么的。

        还可以直接输出你想要的进制。

    char str[50];
    
    sprintf(str,"%s+%x+%x","good",'A',15);
    
    
    printf("%s",str);

结果:
good+41+f
--------------------------------
Process exited after 0.5701 seconds with return value 0
请按任意键继续. . .

        这是输出十六进制,A的ASCII是65对应十六进制41,15对应十六进制f。

        注意在这个sprintf是有返回值的,成功返回字符串长度。

    char str[50];
    int re;
    
    
    re=sprintf(str,"%s+%x+%x","good",'A',15);
    
    printf("%s\n",str);
    printf("%d\n",re);

结果:
good+41+f
9

--------------------------------
Process exited after 0.0162 seconds with return value 0
请按任意键继续. . .

3.snprintf

        这个是sprintf的扩展版。直接看代码。

    char str1[10]="hello";
    char str2[10]="world";
    char str[10];

    snprintf(str,4,str1);

    printf("%s\n",str);

结果:
hell
--------------------------------
Process exited after 0.01755 seconds with return value 0
请按任意键继续. . .

        很好理解,指定了字符数量。这样似乎也可以当做分割用。可以试一试。

        注意:

  • 会自动在格式化后的字符串尾添加\0。
  • 返回值n,当调用失败时,n为负数,当调用成功时,n为格式化的字符串的总长度。

4.总结

        上面说的还不够全面,希望大家多多指教。

        祝大家周末愉快!

        要自由啊,同学们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

万能的sprintf 的相关文章

  • 【视觉SLAM十四讲】第12讲 回环检测

    12 1 回环检测概述 前面已经介绍过了前端和后端 xff0c 前端用于特征点的提取以及轨迹 地图的初始值 xff0c 而后端负责对这部分数据进行优化 考虑到误差的存在 xff0c 每一个时刻存在的误差会不断累积 xff0c 从而产生累积误
  • LVGL——PC模拟器仿真模拟+VS2017

    目录 LVGL介绍移植说明资源下载环境搭建编译运行 本文只针对当时的LVGL v7 xff0c LVGL迭代过程中变化较大 xff0c 部分接口有可能做调整 本文仅供参考 LVGL介绍 官网 xff1a https lvgl io 官方在线
  • LVGL 优化帧率技巧

    目录标题 前文未优化版本LVGL帧率限制刷屏方法效率代码优化等级编译器版本LVGL显存单buffer非全尺寸双buffer全尺寸双buffer 本文只针对当时的LVGL v7 xff0c LVGL迭代过程中变化较大 xff0c 部分接口有可
  • CMAKE 里PRIVATE、PUBLIC、INTERFACE属性示例详解

    闲扯 cmake 里面target include directories xff0c target link libraries这两个命令里面有三种属性PRIVATE PUBLIC INTERFACE cmake PRIVATE PUBL
  • C++11 返回值优化、移动语义及函数返回值构造的重载决议

    局部变量unique ptr能否作为返回值 记得自己之前在哪写过一篇返回值优化的博客 xff0c 翻了半天csdn xff0c 居然没找到 xff0c 也不知道写在哪了 被问到一个unique ptr 局部变量能不能做返回值的问题 xff0
  • C++ 面试八股分享

    一年半 xff0c 估计又要跳槽了 xff0c 本来还想再积累一两年的 xff0c 结果公司业务线调整 xff0c 同部门三四个同事n 43 1裁了 xff0c 我也要换工作内容 xff0c 现在在来这么一出 xff0c 就准备骑驴找马 x

随机推荐

  • c++ makefile + clangd 生成 compile_command.json

    补充vscode 43 clangd 开发 c c 43 43 一个项目用makefile管理 xff0c 工程很大 xff0c vscode的ms cpp tools代码跳转功能基本处于残废状态 xff0c 有想将makefile 迁移至
  • stm32 串口+DMA+环形FIFO缓存收发数据

    cos环境例程 freertos环境例程 重要几点 1 配置DMA xff0c 串口及环形buff之间的关系 xff1b 2 USART IT IDLE空闲中断接收完一帧数据 xff0c 处理环形buff入口指针 通知用户程序接收完一次数据
  • VScode 中 C或C++ 结构体提示,代码补全不准确的 解决方案

    1 找到项目工作区的 settings json文件 2 修改 C Cpp intelliSenseEngine Tag Parser 为 C Cpp intelliSenseEngine Default 解释 Tag Parser 提供非
  • C/C++ 避免重复定义

    加入宏定义 第一种 xff1a span class token macro property span class token directive keyword ifndef span STUDENT H span span class
  • vscode文件标签栏显示多行

    设置步骤 xff1a 按下 ctrl 43 shift 43 p xff0c 如下图 xff1a 输入 open workspace settings xff0c 打开工作区设置 输入 workbench editor wrapTabs x
  • ::在C++中的意思

    表示作用域 xff0c 和所属关系 class A int A test 表示test是属于A类的 关于 的具体解析 xff1a 是运算符中等级最高的 xff0c 它分为三种 1 global scope 全局作用域符 xff09 xff0
  • 【Linux问题解决】操作系统用C语言多线程编程 对‘pthread_create’未定义的引用 报错解决办法

    操作系统用C语言多线程编程 对 pthread create 未定义的引用 报错解决办法 今天写操作系统作业 在Ubuntu Linux系统中用C语言编写多线程程序 在命令行进行编译 没通过编译 报错如下 xff1a In file inc
  • linux 服务器执行post请求 curl命令详解

    什么是curl xff1f curl是一个命令行访问URL的计算机逻辑语言的工具 xff0c 发出网络请求 xff0c 然后得到数据并提取出 xff0c 显示在标准输出 stdout 上面 xff0c 可以用它来构造http request
  • open-falcon 监控cpu指标及含义

    user 30512019 从系统启动开始累计到当前时刻 xff0c 用户态的CPU时间 xff0c 不包含nice值为负进程 nice 2905 从系统启动开始累计到当前时刻 xff0c nice值为负的进程所占用的CPU时间 syste
  • [Unity] 串口读取数据错误 IOException: 拒绝访问。

    错误内容 IOException 拒绝访问 System IO Ports WinSerialStream ReportIOError System String optional arg at lt 14e3453b740b4bd690e
  • px4仿真无法起飞问题(Failsafe enabled: no datalink)

    报错信息 问题描述 xff1a 使用JMAVSim和gazebo仿真px4起飞时报错如下 xff1a WARN commander Failsafe enabled no datalink 说不安全 解决方法 打开QGC 就可以起飞了
  • TCP (传输控制协议)和 UDP

    传输控制协议 xff08 TCP xff0c Transmission Control Protocol xff09 是一种面向连接的 可靠的 基于字节流的传输层通信协议 是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输
  • 全网第一篇 Jetson AGX Xaiver + Jetpack5.0.2(Ubuntu20.04) + ROS2 + ORB-SLAM3 + ZED2

    本机系统 xff1a Jetpack5 0 2 Ubuntu 20 04 LTS 注意事项 xff1a 想要避坑 xff0c 务必按照文中版本准备各种环境 一 安装软件 1 Pangolin 0 5 网址 xff1a https githu
  • java中char转化为int的几种方法

    java中char转化为int的几种方法总结 方法一 xff1a 在char后面 0 span class token keyword public span span class token keyword class span span
  • 大疆 RoboMaster 3508/2006/GM6020 电机使用教程

    19年开始使用大疆的电机 xff0c 刚开始接触有很多东西不懂 xff0c 网上除了RM官网提供的一些资料外没有很多其他的资料 xff0c 现在使用大疆电机近一年了 xff0c 想分享一下自己的经验 1 硬件部分 1 C610电调只能连接M
  • DBC文件解析及CAN通信矩阵

    一般的 DBC 文件中包含了如下的8种信息 xff1a 1 版本与新符号 2 波特率定义 3 网络节点的定义 4 报文帧的定义 5 信号的定义 6 注解部分 7 特征部分 8 数值表部分 VERSOIN 34 34 版本信息 xff0c 为
  • 基于Rplidar二维雷达使用Hector_SLAM算法在ROS中建图

    文章目录 前言一 ROS分布式通信 xff08 配置多机通信 xff09 1 简介2 步骤2 1 准备2 2 修改配置文件2 3配置主机IP2 4配置从机IP 二 RPlidar的使用教程1 创建环境2 下载激光雷达的功能包3 编译4 启动
  • TCP连接建立的步骤

    TCP连接建立的步骤 一 客户端向服务器端发送连接请求后 xff0c 就被动地等待服务器的响应 典型的TCP客户端要经过下面三步操作 xff1a 1 创建一个Socket实例 xff1a 构造函数向指定的远程主机和端口建立一个TCP连接 x
  • 能否在头文件中放置函数定义?

    语法上是可以这样做的 xff0c 但是在编程规范中并不鼓励这样做 成员函数一般是不可以在头文件中定义的 xff0c 只能在头文件中声明 因为函数只能有一次定义 xff0c 而可以有多次声明 xff0c 当头文件被多次包含的时候 xff0c
  • 万能的sprintf

    0 前言 先推荐一本书 xff0c 政治书籍 政治的人生 xff0c 算是一本日记题材 是现任 xff0c 作者大家百度一下就知道了 xff0c 这里不宜过多说明 从这本书里 xff0c 可以看出来现在的社会 这本书是30年前的 大佬就是大