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

【时时三省】(C语言基础)字符数组的输入输出

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省

字符数组的输入输出可以有两种方法。

( 1 )逐个字符输入输出。用格式符“% c”输入或输出一个字符.

( 2 )将整个字符串一次输入或输出。用“% s”格式符,意思是对字符串( string )的输人输出。

输出时,遇结束符'\0 '就停止输出。

说明:

( 1 )输出的字符中不包括结束符' \0’。

( 2 )用“% s”格式符输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素名。写成下面这样是不对的:

printf ( " % s ",c [ 0 ] );/ / c [ 0 ]不是字符数组名,而是一个数组元素

( 3 )如果数组长度大于字符串的实际长度,也只输出到遇' \0 '结束。

( 4 )如果一个字符数组中包含一个以上' \0 ',则遇第一个' \0 '时输出就结束。

( 5 )可以用scanf函数输入一个字符串。例如:

scanf ( " % s " , c );

scanf函数中的输入项c是已定义的字符数组名,输入的字符串应短于已定义的字符数组的长度。例如,已定义:

char c [ 6 ];

从键盘输入:

China

系统会自动在China后面加一个' \ 0 '结束符。如果利用一个scanf函数输入多个字符串,则应在输入时以空格分隔。例如:

char str1 [ 5 ],str2 [ 5 ],str3 [ 5 ];

scanf (”% s% s% s " , strl , str2 , str3 ) ;

输入数据:

How are you?

由于有空格字符分隔,作为3个字符串输入。在输入完后,strl,str2和str3数组的决态如下:

strl : H o w \0 \0

str2:a r e \0 \0

str 3:y o u ? \0

数组中未被赋值的元素的值自动置'\0 '。若改为

char str [ 13 ];

scanf ( " % s ",str );

如果输入以下12个字符;

How are you?

由于系统把空格字符作为输入的字符串之间的分隔符,因此只将空格前的字符“How”送到str中。把“How“作为一个字符串处理,故在其后加'\0 '。

注意:scanf函数中的输入项如果是字符数组名,不要再加地址符&,因为在C语言中数组名代表该数组第一个元素的地址(或者说数组的起始地址)。

( 6 )前面介绍的输出字符串的方法:

printf ( " % s”,c );

实际上是这样执行的:

按字符数组名c找到其数组第一个元素的地址,然后逐个输出其中的字符,直到遇'\0 '为止。

 

http://www.dtcms.com/a/185946.html

相关文章:

  • 【C++进阶篇】多态
  • 使用Docker安装Dify
  • winreg查询Windows注册表的一些基本用法
  • 【Linux网络】————HTTP协议详解
  • 运算放大器相关的电路
  • Maven 项目中将本地依赖库打包到最终的 JAR 中
  • 【AI】mcp server是什么玩意儿
  • Python, FastAPI 与 RESTful API:构建高效 Web 服务的指南
  • SQLite 数据库常见问题及解决方法
  • 小结: Port Security,DHCP Snooping,IPSG,DAI,
  • 《汽车软件升级通用技术要求》 GB 44496-2024——解读
  • RN 鸿蒙混合开发实践(踩坑)
  • 每日Prompt:超现实交互场景
  • 动态网站 LNMP
  • 基于LNMP架构的个人博客系统部署
  • 详解RabbitMQ工作模式之通配符模式
  • laravel 中使用的pdf 扩展包 laravel-snappy(已解决中文乱码)
  • 从零搭建AI工作站:Gemma3大模型本地部署+WebUI配置全套方案
  • 用 openssl 测试 tls 连接
  • C++23 views::slide (P2442R1) 深入解析
  • 奇次谐波和偶次谐波【EMC】
  • 扩展:React 项目执行 yarn eject 后的 scripts 目录结构详解
  • 数据结构与算法学习-JavaScript的Array.prototype.reduce()方法
  • 【K8S学习之探针】详细了解就绪探针 readinessProbe 和存活探针 livenessProbe 的配置
  • 【K8S学习之生命周期钩子】详细了解 postStart 和 preStop 生命周期钩子
  • JAVA EE_网络原理_数据链路层
  • 【网工第6版】第10章 网络规划和设计①
  • 【android bluetooth 框架分析 02】【Module详解 13】【CounterMetrics 模块介绍】
  • 【数据结构】双链表
  • 数据结构(六)——树和二叉树