【CC++】为什么 scanf 函数在读取字符串时不需要用取地址运算符
在C语言中如何使用 scanf 读取字符串
在C语言中,字符串实际上是字符数组,所以我们可以使用scanf函数来读取字符串。但是,需要注意的是,scanf在读取字符串时会在遇到空格、制表符或换行符时停止。因此,它不能用于读取包含空格的字符串。
以下是使用scanf读取字符串的基本示例:
char str[100];
scanf("%s", str);
在这个例子中,我们定义了一个可以容纳100个字符的字符数组str。然后,我们使用scanf函数和"%s"格式字符串来读取一个字符串,并将其存储在str中。
如果你想读取一行文本(包括空格),你可以使用fgets函数,如下所示:
char str[100];
fgets(str, 100, stdin);
在这个例子中,fgets函数从标准输入stdin读取最多99个字符(最后一个字符是\0,代表字符串的结束)并将它们存储在str中。
为什么 scanf 函数在读取字符串时不需要用取地址运算符 &
在C语言中,数组名(在这种情况下是 str)本质上是一个指针,它指向数组的第一个元素。因此,当你写 str 时,你实际上是在提供数组的第一个元素的地址。这就是为什么 scanf 在读取字符串时不需要 & 的原因。
在大多数情况下,当你需要提供变量的地址给函数(如 scanf)时,你需要使用 & 运算符。这是因为对于基本类型(如 int,float 等),你需要明确地获取它们的地址。
但是,对于数组,情况就不同了。数组名本身就是一个指向数组第一个元素的指针,因此你不需要使用 & 运算符。这适用于所有类型的数组,包括字符数组(也就是字符串)。
例如,以下两个语句在功能上是等价的:
scanf("%s", str);
scanf("%s", &str[0]);
在这两种情况下,scanf 函数都会将输入的字符串存储在数组 str 的开始位置。
相关文章:
【CC++】为什么 scanf 函数在读取字符串时不需要用取地址运算符
在C语言中如何使用 scanf 读取字符串 在C语言中,字符串实际上是字符数组,所以我们可以使用scanf函数来读取字符串。但是,需要注意的是,scanf在读取字符串时会在遇到空格、制表符或换行符时停止。因此,它不能用于读取包…...
Linux dirs命令教程:dirs命令详解与实例(附实例详解和注意事项)
Linux dirs命令介绍 dirs这是一个内置在shell中的命令,用于显示当前被记忆的目录列表。默认状态下,它会按照stack的方式储存目录,即最后加入的目录会被首先列出来。 Linux dirs命令适用的Linux版本 dirs命令在所有常见的Linux发行版中都适…...
掌握虚拟化:PVE平台安装教程与技术解析
🌟🌌 欢迎来到知识与创意的殿堂 — 远见阁小民的世界!🚀 🌟🧭 在这里,我们一起探索技术的奥秘,一起在知识的海洋中遨游。 🌟🧭 在这里,每个错误都…...
Godot FileDialog无法访问其它盘符的文件
问题描述 使用Godot的FileDialog对象访问Windows系统的文件,例如: func _on_hud_sig_save():var dlg FileDialog.new()dlg.set_access(FileDialog.ACCESS_FILESYSTEM)dlg.set_file_mode(FileDialog.FILE_MODE_SAVE_FILE)add_child(dlg)dlg.popup_cent…...
TestNG注释
目录 TestNG注释列表 BeforeXXX和AfterXXX注释放在超类上时如何工作? 使用BeforeXXX和AfterXXX TestNG注释 TestNG是一个测试框架,旨在简化广泛的测试需求,从单元测试(隔离测试一个类)到集成测试(测试由…...
数据预处理 matlab 数据质量评估
知乎 数据类型转换等 Mathworks 数据预处理 概念辨析 配对是同一批样本的前后比较,独立是两批不同样本的的比较 独立样本是指我们得到的样本是相互独立的。配对样本就是一个样本中的数据与另一个样本中的数据相对应的两个样本。配对样本可以消除由于样本指定的不公…...
对象存储, 开源MinIO docker-compose.yml 文件
文章目录 python SDK 文档地址:docker-compose.yml 文件控制台使用:应用服务中使用样例: python SDK 文档地址: https://min.io/docs/minio/linux/developers/python/API.html docker-compose.yml 文件 version: 3services:min…...
爬虫笔记(一):实战登录古诗文网站
需求:登录古诗文网站,账号+密码+图形验证码 第一:自己注册一个账号+密码哈 第二:图形验证码,需要一个打码平台(充钱,超能力power!)或…...
适用于 Windows 11 的 12 个最佳免费 PDF 编辑器
除了绘图等基本功能外,一些适用于 Windows 11 的免费 PDF 编辑器还具有 AI、OCR 识别和书签等高级功能。 我们的列表包含易于立即下载的 PDF 编辑软件工具。 这些工具不仅可以帮助转换 PDF、编辑、上传、删除、裁剪、分割、提取等。 PDF 是指便携式文档格式&…...
力扣每日一练(24-1-18)
经验一:不要把问题想复杂 Python: min_price float(inf)max_profit 0for price in prices:min_price min(min_price, price)max_profit max(max_profit, price - min_price)return max_profit C#: public int MaxProfit(int[] prices) {i…...
MyBatis 使用报错:org.xml.sax.SAXParseException 元素内容必须由格式正确的字符数据或标记组成
文章目录 前言问题分析解决方案方案一:使用 CDATA 区块,依然使用 “ > ” 或者 “ < ”方案二:使用转义字符 个人简介 前言 今天在使用 MyBatis 时出现报错: Caused by: org.xml.sax.SAXParseException: 元素内容必须由格式…...
PDF.js - 免费开源的 JavaScript 读取、显示 PDF 文档的工具库,由 Mozilla 开发并且持续维护
最近新项目需要处理 PDF,研究了 PDf.js 之后觉得很不错,于是写篇文章推荐给大家。 PDF.js 的功能和它的名字一样简单,是一个使用 HTML5 技术来让前端网页支持读取、解析和显示 PDF 文档的 JS 工具库。这个项目由大名鼎鼎的 Mozilla 组织开发…...
UI开发布局-HarmonyOS应用UI开发布局
UI页面的构建不用再像Android开发过程中在.xml文件中书写,可直接在页面上使用声明式UI的方式按照布局进行排列,构建应用的页面。 如下代码使用Row、Column构建一个页面布局,在页面布局中添加组件Text、Button,共同构成页面&#…...
大数据开发之Hadoop(完整版+练习)
第 1 章:Hadoop概述 1.1 Hadoop是什么 1、Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 2、主要解决,海量数据的存储和海量数据的分析计算问题。 3、Hadoop通常是指一个更广泛的概念-Hadoop生态圈 1.2 Hadoop优势(4高…...
Redis与DB数据一致性-个人总结
缓存读写策略: Cache-Aside Pattern 读缓存: 先查询缓存,存在则返回, 如果不存在则查询DB, 再塞回缓存中,最后返回结果. 写缓存: 更新完成DB之后,删除缓存. 适合场景: 读比较多的场景,更新比较少的场景. 像我们工作当中&#…...
VMware workstation安装debian-12.1.0虚拟机(最小化安装)并配置网络
VMware workstation安装debian-12.1.0虚拟机(最小化安装)并配置网络 Debian 是一个完全自由的操作系统!Debian 有一个由普罗大众组成的社区!该文档适用于在VMware workstation平台安装最小化安装debian-12.1.0虚拟机。 1.安装准…...
SG-9101CGA(汽车+125°C可编程晶体振荡器)
SG-9101CGA是用于汽车CMOS输出的可编程晶体振荡器,彩用2.5 x 2.0 (mm)封装,0.67 MHz至170 MHz频率范围、工作温度范围为-40℃~125℃,符合车规级晶振,无铅,绿色环保,满足汽车工业标准,电源电压范…...
第十五届蓝桥杯单片机组备赛——独立键盘矩阵键盘
文章目录 一、按键原理二、独立键盘&矩阵键盘2.1 独立按键2.2 矩阵键盘2.2.1 列扫描2.2.2 行扫描2.2.3 代码实现(行扫描实现) 三、矩阵键盘注意事项3.1 为什么要设置C1C2C3C413.2 按键消抖 一、按键原理 原理很简单,当我们没有按下SW2时,由于上拉电阻…...
HCIA—— 16每日一讲:HTTP和HTTPS、无状态和cookie、持久连接和管线化、(初稿丢了,这是新稿,请宽恕我)
学习目标: HTTP和HTTPS、无状态和cookie、持久连接和管线化、HTTP的报文、URI和URL(初稿丢了,这是新稿,请宽恕我😶🌫️) 学习内容: HTTP无状态和cookieHTTPS持久连接和管线化 目…...
使用JavaScript实现一个复杂功能:日期范围选择器
日期范围选择器是一个常见的Web应用功能,它允许用户选择一个日期范围。在本篇文章中,我们将使用JavaScript来实现这个功能。 一、实现思路 创建一个开始日期输入框和一个结束日期输入框。 添加事件监听器,监听开始日期输入框和结束日期输入…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
