C语言之字符串数组

目录

字符串数组

 读取字符串数组中字符串

注意

字符串可以用数组来表示,所以字符串的集合也可以用数组的数组(即多维数组)来表示,下面我们就来学习字符串数组。

字符串数组

类型相同的数据集合适合用数组来实现,所以字符串的集合就称为字符数组。

首先来看下生成并显示字符串数组的程序:

#include<stdio.h>

int main()
{
	int i;
	char cs[][6] = {"ABC", "DEF", "MAX"};
	for(i = 0; i < 3; i++)
	{
		printf("cs[%d] = \"%s\"\n", i, cs[i]);
	}
	
	return 0;
}

该程序中的数组是由三个字符串组成的,数组cs是3行6列的二维数组(元素类型为char[6]型、元素个数为3的数组)。

数组cs的元素,是char[6]型的数组,数组cs[1—3]分别表示“ABC”,“DEF”,“MAX”,如下图:

二维数组的各构成元素都是由二维数组的两个下标所构成,如:字符“A”由cs[0][0]表示

数组声明中初始值不足时,用0来初始化该元素,所以各个字符串后面的空白部分都初始化为null字符。

 读取字符串数组中字符串

我们来编写一个从标准输入读到的字符串的各个字符逐个往字符串数组中的各个元素赋值:

#include<stdio.h>

int main()
{
	int i;
	char s[3][128];
	
	for(i = 0; i < 3; i++)
	{
		printf("s[%d]:", i);
		scanf("%s", s[i]);
	}
	for(i = 0;i < 3;i++)
	{
		printf("s[%d] = \"%s\"\n", i, s[i]);
	}
	return 0;
}

该程序中的数组s是3行128列的二维数组,即元素类型为char[128]、元素个数为3的数组,数组为3行是因为需要读取并显示三个字符串。

因为我们事先不知道要输入什么字符,所以数组元素的个数就必须多一些

注意

因为s[0],s[1]等都是字符串(字符数组),所以将它们传入scanf函数时不可以带&运算符(在学到指针与数组的关系中可以得知数组名原则上可以被解释为指向该数组起始元素的指针,所以不能加上&。&在访问的是该元素的地址,当然这只是我目前学习阶段的浅薄理解)。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

javascript变量提升机制

变量提升&#xff1a;当栈内存&#xff08;作用域&#xff09;形式&#xff0c;js代码自上而下执行之前&#xff0c;浏览器首先会把所有带VAR/FUNCTION关键词的进行提前的“声明”或者“定义”。这种预先处理机制称为变量提升。 声明&#xff08;declare&#xff09;&#xff…

图片转excel:“保留数字格式”在什么场景下该勾

保留数字格式是什么意思呢&#xff1f;顾名思义&#xff0c;就是将转出来的数字保留为数字格式&#xff0c;而不是文本格式。我们知道&#xff0c;OCR程序将图片上的文字识别为电脑可编辑的文字后&#xff0c;如果导入到excel不加处理&#xff0c;则单个数字过长的文字就会被ex…

华为HCIA认证H12-811题库新增

801、[单选题]178/832、在系统视图下键入什么命令可以切换到用户视图? A quit B souter C system-view D user-view 试题答案&#xff1a;A 试题解析&#xff1a;在系统视图下键入quit命令退出到用户视图。因此答案选A。 802、[单选题]“网络管理员在三层交换机上创建了V…

Flutter中鼠标 onEnter onExit onHover 实现代码分析

生活会给你任何最有益的经历&#xff0c;以助你意识的演变。 转载请注明出处: 这里对最近用到的一些 Flutter 开源的东西进行总结积累&#xff0c;希望能帮助到大家。 文章目录 背景测试代码flutter 代码onEnter & onExitonHover end 背景 Android设备在使用的时候&#…

【Linux】Linux常见指令解析上

目录 1. 前言2. ls指令3. pwd指令4. cd指令3.1 cd常见快捷指令 4. touch指令5. mkdir指令6. rmdir指令 && rm指令 &#xff08;重要&#xff09;6.1 rmdir指令6.2 rm指令 7. man指令 1. 前言 这篇文章我们将详细介绍一下Linux下常见的基本指令。 2. ls指令 语法: ls [选…

抖音网红罗盘时钟改良版

文章目录 💕效果展示💕代码展示HTML💕效果展示 💕代码展示 HTML <!DOCTYPE html> <html lang=

FreeSWITCH 拨打带分机号的电话之实现原理(即真人接听检测))

哪些场景需要真人接听检测&#xff1f; 呼叫有分机号的虚拟号(隐私号) 使用没开通反极信号的模拟线路进行外呼 呼叫企业总机转分机 虚拟号(隐私号)之分机号 在外卖、网购、物流等行业为了保护用户隐私&#xff0c;平台会把联系电话替换成一个零时的中间号码&#xff0c;拨…

python实现元旦多种炫酷高级倒计时_附源码【第20篇—python过元旦】

文章目录 &#x1f30d;python实现元旦倒计时 — 初级(控制台)⛅实现效果&#x1f30b;实现源码&#x1f31c;源码讲解 &#x1f30d;python实现元旦倒计时 — 中级(精美动态图)⛅实现效果&#x1f30b;实现源码&#x1f31c;源码讲解 &#x1f30d;python实现元旦倒计时 — 高…

STM32移植LVGL图形库

1、问题1&#xff1a;中文字符keil编译错误 解决方法&#xff1a;在KEIL中Options for Target Flash -> C/C -> Misc Controls添加“--localeenglish”。 问题2&#xff1a;LVGL中显示中文字符 使用 LVGL 官方的在线字体转换工具&#xff1a; Online font converter -…

JS中的Set和Map数据结构

新的数据结构出现&#xff0c;往往是为了解决之前的痛点&#xff0c;更快更便捷的实现代码逻辑。本篇文章咱们一起学习一下JS中Set和Map数据结构。 Set 定义 Set结构中储存的是值&#xff0c;类似于数组&#xff0c;但是储存的值具有唯一性。定义Set结构方式如下图&#xff1…

【经典LeetCode算法题目专栏分类】【第10期】排序问题、股票问题与TOP K问题:翻转对、买卖股票最佳时机、数组中第K个最大/最小元素

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推荐--…

Unity协程的定义、使用及原理,与线程的区别、缺点全方面解析

目录 协程的定义及简介 协程的用途 定时器 将复杂程序分帧执行 等待某些条件完成后执行后续 异步加载资源 协程的原理 MonoBehaviour中每一帧的游戏循环 迭代器 IEnumerator 接口 具体执行过程 协程和线程的区别 协程的缺点 无法返回值 依赖于MonoBehaviour 维护…

Linux学习笔记8-Uboot移植-网络设置和其他坑的解决

Linux之所以被称为操作系统&#xff0c;肯定是需要有引导程序来启动各个关键外设的运行&#xff0c;这里可以和个人电脑PC做个类比。我们在开机的时候是不是先要进入BIOS&#xff0c;BIOS在初始化硬盘、内存、USB接口、网口等之后&#xff0c;才可以进入Windows系统对吧&#x…

CUMT--Java复习--文件及IO流

目录 一、文件 1、文件系统和路径 2、File类 3、FilenameFilter接口 二、IO流 1、流的分类 2、流的体系结构 三、字节流 1、InputStream 2、OutputStream 四、字符流 1、Reader 2、Writer 五、过滤流和转换流 1、过滤流 2、转换流 六、序列化 1、对象序列化…

LeetCode 1954. 收集足够苹果的最小花园周长:数学O(1)的做法

【LetMeFly】1954.收集足够苹果的最小花园周长&#xff1a;数学O(1)的做法 力扣题目链接&#xff1a;https://leetcode.cn/problems/minimum-garden-perimeter-to-collect-enough-apples/ 给你一个用无限二维网格表示的花园&#xff0c;每一个 整数坐标处都有一棵苹果树。整数…

DRF之初识

一、序列化和反序列化 api接口开发&#xff0c;最核心最常见的一个过程就是序列化 【1】序列化 把我们能识别的数据结构(python的字典&#xff0c;列表&#xff0c;对象)转换成其他语言(程序)能识别的数据结构。例如&#xff1a; 我们在django中获取到的数据默认是模型对象(…

【论文解读】3D视觉标定的显式文本解耦和密集对齐(CVPR 2023)

来源&#xff1a;投稿 作者&#xff1a;橡皮 编辑&#xff1a;学姐 论文链接&#xff1a;https://arxiv.org/abs/2209.14941 开源代码&#xff1a;https://github.com/yanmin-wu/EDA 图1所示。文本解耦&#xff0c;密集对齐的3D视觉标定。文本中的不同颜色对应不同的解耦分量。…

Windows 11中显示文件扩展名的方法与Windows 10大同小异,但前者更人性化

默认情况下&#xff0c;Windows 11会隐藏已知文件类型的文件扩展名。这可能会使在不首先打开文件的情况下很难识别文件类型。 幸运的是&#xff0c;你可以将Windows 11配置为显示已知文件类型的扩展名。该方法类似于Windows 10&#xff0c;但该选项现在组织在下拉菜单中&#…