C语言-printf打印%*s、%.*s与%-.*s的区别

news2024/11/25 8:15:12

一、简介

        在平时的使用中,会经常使用到printf进行打印,而最长使用的方式是printf("%s",string)进行打印。但是有个问题,如果string结尾不是0。那么printf会继续打印,直到遇到0为止。这样就会有内存溢出的风险。显然,这种是不符合预期的。所以,此时就需要%*s出来帮忙了。

二、功能介绍

        printf("%s",string)

        打印字符串,遇到0停止

        printf("%*s",10,string)或printf("%10s",string)

        打印字符串,至少占用10个字节。如果不够,则在左侧补0,如果超过10个,则按实际长度

        printf("%.*s",10,string)或printf("%.10s",string)

        打印字符串,最多占10个字节。如果不够,则按实际长度,如果超过10个,则只打印10个

        

        printf("%-*s",10,string)或printf("%-10s",string)

        打印字符串,至少占用10个字节,如果不够,则在右侧补0,如果超过10个,则按实际长度。

        注:%-s只是改变了对齐的方向。正常是右对齐,加上“-”后,为左对齐。

三、实例

        见如下代码,这里我们分别以%*s、%.*s和%-*s三种方式进行打印。

    char *string1 = "this is a test string";

    uint8_t len = strlen(string1);

    printf("len:%d,%s\r\n",len,string1);
    printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\r\n");
    printf("%15s|\r\n%*s|\r\n%-30s|\r\n",string1,30,string1,string1);
    printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\r\n");
    printf("%.15s|\r\n%.*s|\r\n%-.30s|\r\n",string1,30,string1,string1);
    printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\r\n");

        看结果:

        

         可以看到,要打印的字符串长度为21字节%*s打印,如果要打印的长度大于设置的长度,则打印实际长度。而%.*s打印,如果要打印的长度大于设置的长度,则只打印设置的长度。而%-*s只是将右对齐改变成了左对齐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/555112.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(三)ArcGIS空间数据的转换与处理——栅格数据变换

ArcGIS空间数据的转换与处理——栅格数据变换 目录 ArcGIS空间数据的转换与处理——栅格数据变换 1.地理配准2.平移3.扭曲4.旋转5.翻转6.重设比例尺7.镜像 数据变换是指对数据进行诸如放大、缩小、翻转、移动、扭曲等几何位置、形状和方位的改变等操作。对于 栅格数据的相应操…

类和对象 - 练习题(C++)

目录 1、求123...n 题目链接: 题目: 题目描述: 解题思路: 代码: 2 计算日期到天数转换 题目链接: 题目: 题目描述: 解题思路: 代码: 3 日期差值 题目链接&…

人工智能学习07--pytorch18--目标检测:Faster RCNN源码解析(pytorch)

参考博客: https://blog.csdn.net/weixin_46676835/article/details/130175898 VOC2012 1、代码的使用 查看pytorch中的faster-rcnn源码: 在pytorch中导入: import torchvision.models.detection.faster_rcnn即可找到faster rcnn所实现的源…

NIFI分页获取Postgresql数据到Hbase中_实际操作---大数据之Nifi工作笔记0049

首先看一下整体流程,可以看到这里用的PutHbaseJson处理器,把数据导入到 hbase中的 注意这里也可以使用PutSql导入数据,通过phoenix的jdbc驱动,然后把数据利用PutSql处理器导入到 Hbase中,但是我这里的时候报错了,然后一直没解决,所以最后用了PutHbaseJson处理器,把数据存入到…

【LinuxShell】linux防火墙之SNAT策略和DNAT策略

文章目录 前言一、SANT策略1.SNAT策略概述2.SNAT的典型应用环境3.SNAT的工作原理4.SNAT策略的应用SNAT转换前提条件SNAT策略打开方式SNAT实验过程 5.知识扩展 二、DNAT策略1.DNAT策略概述2.DNAT的典型应用环境3.DNAT的工作原理4.DNAT策略的应用DNAT转换前提条件DNAT地址转换方式…

linux管道通信原理

管道,通常指无名管道,是 UNIX 系统IPC(InterProcess Communication)最古老的形式。 1、特点: 1.它是半双工的(即数据只能在一个方向上流动) ,具有固定的读端和写端 2.它只能用于具有亲缘关系的进程之间的通信(也是子进程或者兄弟进…

python 读写 json,csv,txt,docx,xlsx,xls文件大全

目录 前言一、读写json1.1 读1.2 写1.2.1 list类型写入1.2.2 dict类型写入 二、读写csv2.1 读2.2 写2.2.1 list类型写入2.2.2 dict类型写入 三、读写txt3.1 读3.2 写按行写入(手动添加换行符\n)按行写入(python添加换行符\n)3.2.1…

Linux:Firewalld防火墙

Linux:Firewalld防火墙 一、Firewanlld防火墙概述二、Firewalld和Iptables的关系三、Firewalld网络区域3.1 Firewalld 区域的概念:3.2 firewalld防火墙预定义了9个区域3.3 firewalld数据处理流程 四、Firewalld防火墙的配置方法五、Firewalld-config图形…

RHCSA 8考题超级详细解析(2022最新版)本人已过

文章目录 1.配置IP地址2、配置软件仓库3、调试SELinux4、创建用户账户5. 配置cron计划任务6、创建共享目录7、配置NTP时间客户端8. auto自动挂载9、配置文件权限10、配置用户账户11、查找文件12、查找字符串13、 创建归档14、配置sudo提权15、设置密码默认策略16、配置umask值1…

海格里斯HEGERLS库架合一|仓储托盘四向穿梭车在冷库冷链行业中的应用

当前的物流行业正在从劳动密集型向技术密集型转变,物流系统越来越明显的向呈现出自动化、数字化、柔性化、智能化的发展趋势。以堆垛机为代表的自动化仓储系统,取货对场地要求比较高,多建在12M以上的新仓库。而对于不规则的、层高较低的老仓库…

【python资料】热图和Matplotlib.imshow()函数

一、说明 Matplotlib是一个强大的Python数据可视化库,可以绘制各种类型的图形,其中包括热图。热图通常用于表现数据的分布和趋势。本文用一个简单的例子,告诉大家用Matplotlib绘制热图的基本操作语句。 二、热图的概念 2.1 基本概念 热图&am…

7EBG-10-C-B-107EBG-20-B-B-10比例先导溢流阀放大板

7EBG-10-B-B-10、7EBG-20-C-B-10、7EBG-30-H-B-10、7EBG-10-C-B-10、7EBG-20-B-B-10、7EBG-30-C-B-10特性: ● 该阀是由高性能型比例先导式溢流阀和低噪音型溢流阀组合而成,进行压力与输入电流成比例的压力控制,能够达到无段式控制特性。 ●…

c++(内存管理)

本节目标: 1、c/c内存分布 2、c语言中动态内存管理方式 3、c中动态内存管理 4、operator new 与 operator delete函数 5、new和delete的实现原理 6、定位new表达式(placement - new) 7、常见面试题 目录 1.c/c内存分布 2、c语言中动…

StringRedisTemplate和RedisTemplate的区别

StringRedisTemplate和RedisTemplate的区别 springboot提供了两种redis访问工具类StringRedisTemplate和RedisTemplate,为什么spring官方会提供两种不同redis访问工具呢?两者主要的的区别在于redis的key和value的序列化方式不同,并且StringR…

手把手教你制作AI孙燕姿,让你的抖音视频火遍全网!

最近“AI孙燕姿”翻唱”的《发如雪》《爱在西元前》等歌曲在B站、抖音、快手等短视频平台爆火,截止到发稿前抖音的播放量已经超1700万。 目前AI孙燕姿制作教程资料较少,网上搜到几个都是使用开源项目Sovits来训练模型,使用门槛较高。 本文以…

云时通 X 九毛九 | SRM系统助力连锁餐饮行业高效管理供应链

餐饮行业作为第三产业中的传统服务性行业之一,始终保持旺盛的发展势头,随着时代的进步,现代餐饮企业更多以连锁业态发展,其特点是多种形式相结合而生,将新颖的就餐空间与潮流文化和传统的经典美味互相融合,…

​数据库原理及应用上机(实验五 SQL的数据更新)

✨作者:命运之光 ✨专栏:数据库原理及应用上机实验 🍓🍓前言: 数据库原理及应用上机实验报告的一个简单整理后期还会不断完善🍓🍓 ✨一、实验目的和要求 掌握SQL数据插入、修改和删除语句的一…

多大一口气能将汽车吹上天,你算出来了吗?

多大一口气能将汽车吹上天,你算出来了吗?起来了解其中的原理,手把手教你如何计算汽车起飞所需的风速! 空气同时通过机翼上表面和下表面时,会在机翼上下方形成不同流速,空气通过机翼上表面时流速大,压强较小;通过下表面…

设计模式之【中介者模式】,多对多关系降级为一对多关系的利器

文章目录 一、什么是中介者模式1、中介者模式的优势2、中介者模式的缺点3、中介者模式的应用场景4、中介者模式的四大角色5、观察者模式和中介模式的区别 二、实例1、中介者模式的一般写法2、租房中介案例3、智能家具案例 三、源码中的中介者模式1、Timer 一、什么是中介者模式…