C语言—总结2—数组,字符数组与字符串的关系,字符串操作函数,输入输出函数

2023-11-10

一.数组

   1.一维数组的创建

              数组是一组同类型元素的集合

             类型符  数组名[常量表达式]

       <1>一般方法

                                                 

       <2>宏定义

                                                 

 **数组创建时,[]内必须是一个常量。

 2.数组的初始化

     数组的初始化是指在创建数组的同时,给数组一些对应的初始化值。

                            

 3.求数组长度

     <1>整型   int len=sizeof(arr)/sizeof(arr[0]);  

     <2>字符串   int len=strlen(arr);

注意 **1.数组是具有相同类型的集合,数组的大小(即所占字节数)由元素个数乘以单个元素的大小。
           2.数组只能够整体初始化,不能被整体赋值。只能使用循环从第一个逐个遍历赋值。
           3.初始化时,数组的维度或元素个数可忽略,编译器会根据花括号中元素个数初始化数组元素的个数。
           4.当花括号中用于初始化值的个数不足数组元素大小时,数组剩下的元素依次用0初始化。
           5.字符型数组在计算机内部用的时对应的ascii码值进行存储的。
           6.一般用”“引起的字符串,不用数组保存时,一般都被直接编译到字符常量区,并且不可被修改。

2.二维数组

    1.二维数组的创建

                      

   2.二维数组的初始化

                       

 注意:
          花括号中的一个花括号代表一个一维数组的初始化。当里面无花括号分组时,按照顺序从第一个开始逐个进行初始化。余下的未赋值的元素用0初始化。

    3.计算长度

       <1>  int len =sizeof(arr[0][0]);   //计算数组首元素大小

       <2>  int len =sizeof(arr)/sizeof(arr[0][0]);   //计算数组元素个数

二.字符数组与字符串的关系

  1.字符数组

      字符数组的定义:用来存放字符量的数组称为字符数组。

     其定义的一般形式是:char 数组名[数据长度];字符数组用于存放字符或字符串,字符数组中的 一个元素存放一个字符,它在内存中占用两个字节。

   2.字符串

      字符串:是由”“包括起来的字符序列。字符串的结束标志是‘\O’,由数字、字母、下划线组成的一串字符。用双引号括起来的一串字符就是字符串常量,它的末尾将由系统自动添加一个字
符串结束标志‘\0’。
       在c语言中不能定义字符串,但是在c语言中使用字符串,通常会用字符数组来模拟字符串,必须是’\0'结尾的字符数组。如果字符数组没有‘\0'结尾,那该字符数组就是普通的字符数组,不是字符串。

2.分类说明

   <1> char arr[5]={'h','e','l','l','o'};   //是字符数组,不是字符串,因为数组容量为5,没有‘\0’的位置,没有一‘\0’结尾。

   <2>  char arr[5]={'h','i'};    //是字符数组也是字符串,容量为5的数组只有两个元素,自动一’\0‘结尾

  <3>   cahr arr[5]="hello";  //是字符串也是字符数组,由“”括起来的自动以'\0'结尾

 3.总结

     <1>. 判断字符数组是否为字符串,就得看他末尾有没有'\0'。
     <2>. 注意判断是否有隐含的\O'。
     <3>. 字符串在C语言中输出字符串时会逐个扫描字符,直到遇见\0'才结束输出。

三.字符串操作函数

   1.strlen

     格式: strlen(数组名);

     功能:统计字符串的长度,以’\0‘为结束标志,统计长度不包括’\0‘。

     代码实现:

                             

              

 2.strcpy

     格式:strcpy(brr,arr);    //将arr的内容拷贝给brr

     功能:    //将arr的内容拷贝给brr

     代码实现:

           

           

  3.strcat

     格式:strcat(arr,brr); 

     功能:将brr的内容连接到arr后面

     代码实现:

            

            

 4.strcmp

      格式:strcmp(arr,brr);

      功能:比较两个字符串的大小

      代码实现:

   

   

 四. 输入输出函数

  1.输入函数

      <1>. scanf

                 scanf("格式",地址);

      <2>. getchar

                getchar(字符串数组);

      <3>.gets

                  get(字符串数组);

      <4>.sscanf

                  作用:从一个字符串中读取指定格式的数据,以已有的字符串作为输入源。

                  sscanf("hello,world","%5s",arr);   //输出:hello

  2.输入函数

       <1>.printf

                    printf("格式",输出对象);

       <2>. putchar

                    putchar(字符串数组);

        <3>.puts

                    puts(字符串数组);

        <4>.sprintf

                   作用:将指定内容打印到字符串中.

                   格式:sprintf(arr,"%s's age is %d","zhangsan",18);    //输出:zhangsan 的年龄为18

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

C语言—总结2—数组,字符数组与字符串的关系,字符串操作函数,输入输出函数 的相关文章

  • 电商数据api拼多多接口获取商品实时数据价格比价api代码演示案例

    拼多多商品详情接口 接口接入入口 它的主要功能是允许卖家从自己的系统中快速获取商品详细信息 通过这个接口 卖家可以提取到商品的各类数据 包括但不限于商品标题 价格 优惠价 收藏数 下单人数 月销售量等 此外 还可以获取到商品的SKU图 详情
  • 【计算机毕业设计】毕业生就业管理微信小程序_lm9q0

    腾讯公司在2017年1月19日发布了一款不需要下载 不需要卸载 不需要存储的软件叫微信小程序 受到了很多人的喜欢 微信小程序自2017年发布至今 依托微信的社交属性和庞大的用户基数 已经渗透到生活的方方面面 1 微信小程序可以将基于微信平台
  • 【计算机毕业设计】宝鸡文理学院学生成绩动态追踪系统

    研究开发宝鸡文理学院学生成绩动态追踪系统的目的是让使用者可以更方便的将人 设备和场景更立体的连接在一起 能让用户以更科幻的方式使用产品 体验高科技时代带给人们的方便 同时也能让用户体会到与以往常规产品不同的体验风格 与安卓 iOS相比较起来
  • 数据结构——排序

    前言 哈喽小伙伴们好久不见 也是顺利的考完试迎来了寒假 众所周知 不怕同学是学霸 就怕学霸放寒假 假期身为弯道超车的最佳时间 我们定然是不能懒散的度过 今天我们就一起来学习数据结构初阶的终章 七大排序 本文所有的排序演示都为升序排序 目录
  • 【C++】__declspec含义

    目录 一 declspec dllexport 如果这篇文章对你有所帮助 渴望获得你的一个点赞 一 declspec dllexport declspec dllexport 是 Microsoft Visual C 编译器提供的一个扩展
  • 【gee】下载modis土地利用类型

    var china ee FeatureCollection projects assets china boundary var lc dataset ee ImageCollection MODIS 061 MCD12Q1 filter
  • Android Navigation的四大要点你都知道吗?

    在JetPack中有一个组件是Navigation 顾名思义它是一个页面导航组件 相对于其他的第三方导航 不同的是它是专门为Fragment的页面管理所设计的 它对于单个Activity的App来说非常有用 因为以一个Activity为架构
  • 最新整理Java面试八股文,大厂必备神器

    在看这篇文章之前 我想我们需要先搞明白八股文是什么 明清科举考试的一种文体 也称制义 制艺 时文 八比文 八股文章就四书五经取题 内容必须用古人的语气 绝对不允许自由发挥 而句子的长短 字的繁简 声调高低等也都要相对成文 字数也有限制 八股
  • 计算机Java项目|基于SSM的篮球系列网上商城设计与实现

    作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智能与大数据 简历模板
  • 计算机Java项目|springboot校园台球厅人员与设备管理系统

    作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智能与大数据 简历模板
  • APP开发毕业设计|ssm爱心小屋公益机构智慧管理APP

    作者主页 编程指南针 作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智
  • 「优选算法刷题」:移动零

    嗨 这个假期罗根开始接触了算法 在为今年的蓝桥杯做准备 所以 开个新专栏 记录记录自己做算法题时的心得 一 题目 给定一个数组 nums 编写一个函数将所有 0 移动到数组的末尾 同时保持非零元素的相对顺序 请注意 必须在不复制数组的情况下
  • 【心电图基线估计和去噪方法的群稀疏正则化】带有群稀疏正则化的心电图基线估计和去噪(Matlab实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • 15天学会Python深度学习,我是如何办到的?

    陆陆续续有同学向我们咨询 Python编程如何上手 深度学习怎么学习 如果有人能手把手 一对一帮帮我就好了 我们非常理解初学者的茫然和困惑 大量视频 书籍 广告干扰了大家的判断 学习Python和人工智能 成为内行人不难 为此 我们推出了
  • 初学者如何快速入门Python(内附详细攻略),一文讲清

    目前python可以说是一门非常火爆的编程语言 应用范围也非常的广泛 工资也挺高 未来发展也极好 Python究竟应该怎么学呢 我自己最初也是从零基础开始学习Python的 给大家分享Python的学习思路和方法 一味的买书看书 看视频 是
  • 学Python,一个月从小白到大神?看你怎么学!

    Python是一门超强大而且超受欢迎的编程语言 它被用在各种领域 比如网站开发 数据分析 人工智能和机器学习 学会Python会给你创造很多职业机会 所以绝对是值得一试的 但你有没有过这样的梦想 一个月时间 从Python小白变成Pytho
  • 2024年华为OD机试真题-查找接口成功率最优时间段-Python-OD统一考试(C卷)

    题目描述 服务之间交换的接口成功率作为服务调用关键质量特性 某个时间段内的接口失败率使用一个数组表示 数组中每个元素都是单位时间内失败率数值 数组中的数值为0 100的整数 给定一个数值 minAverageLost 表示某个时间段内平均失
  • 【js学习之路】遍历数组api之 `filter `和 `map`的区别

    一 前言 数组是我们在项目中经常使用的数据类型 今天我们主要简述作用于遍历数组的api filter 和 map 的区别 二 filter和map的共同点 首先 我们主要阐述一下 filter 和 map 的共同点 api的参数都是回调函数
  • 软件测试/测试开发|给你剖析闭包与装饰器的魔力

    测试管理班是专门面向测试与质量管理人员的一门课程 通过提升从业人员的团队管理 项目管理 绩效管理 沟通管理等方面的能力 使测试管理人员可以更好的带领团队 项目以及公司获得更快的成长 提供 1v1 私教指导 BAT 级别的测试管理大咖量身打造
  • 计算机Java项目|java游戏账号交易系统

    作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智能与大数据 简历模板

随机推荐

  • Mac下输入法总是默认中文,怎么设置成英文的?

    最近一同事在DreamWeaver里 写CSS样式的时候 默认总是中文 切到别的窗口 再切回来 就变成中文了 总要按一下切换键 时间长了特别烦人 在网上找了一些方法 最后找到一个有效的 总结一下就是 先把系统语言设置成英文 然后重启 再重新
  • java web从入门到资深进阶路线图

    要头发伤钱 要钱伤头发 如果说你已经下定了决心 为了钱不惜一切代价 请往后看 从我讲课以来 有很多朋友问过我 java web应该如何学 的确 java后端技术知识体系非常庞大 很多初学者往往一头雾水 不知道怎么学 学些什么东西 先学什么
  • uniapp安装npm依赖,导入,使用

    1 本文以uniapp安装并使用动画组件animate为案例书写 其余组件可使用相同方法套用 2 第一步现在先打开命令行 检查npm是否已经正确安装 输入npm v 返回版本号则证明npm安装正常 如有问题 自行百度npm安装 3 npm环
  • Linux - quota的举例说明

    实作 Quota 流程 1 文件系统支持 root www df h home Filesystem Size Used Avail Use Mounted on dev hda3 4 8G 740M 3 8G 17 home lt 鸟哥主
  • 【STM32】工程配置,存储空间分别情况,常用操作

    STM32的程序和数据存储分布 存储域 意义 存储介质 Code 代码域 ROM RO data 只读数据域 ROM RW data 可读可写数据域 指初始化为非0值的可读写数据 不运行的时候ROM 运行的时候RAM ZI data 可读可
  • informatica简易教程

    一 环境配置1 informatica的元数据 账号 密码 信息保存在Oracle上面2 Linux下在infa bin里有informatica的启动脚本startup infa sh3 修改windows主机的hosts 地址C Win
  • Android Studio远程主机强迫关闭了一个现有的连接

    只要android studio一编译项目 就报 远程主机强迫关闭了一个现有的连接 An Existing Connection was Forcibly Closed by the Remote Host 原因 打开了 win10 的热点
  • 【JVM】内存快照分析工具Jprofiler

    OOM了 怎么办 最好能够快速找到代码第几行出错 内存快照分析工具 MAT Jprofiler MAT Jprofiler 作用 分析Dump内存文件 快速定位内存泄漏 获得堆中的数据 获得大的对象 Jprofiler安装 IDEA插件中搜
  • 高性能RTL仿真器ESEENT专题2:firrtl编译和安装

    由于essent使用的是firrtl工具生成的中间表达式文件 fir 所以要使用和测试essent首先要编译和安装firrtl 因此本节将介绍firrtl的编译和安装 前期准备 安装varilator 参考 verilator安装 安装yo
  • django向前端填充HTML标签,防止django自动转义为字符串

    在外面嵌套一个autoescape即可 autoescape on 填充的内容 endautoescape 官方文档请参考 https docs djangoproject com zh hans 4 0 ref templates bui
  • USB过压保护芯片,高输入电压充电器(OVP)

    PW2606B是一种前端过电压和过电流保护装置 它实现了广泛的输入电压范围从2 5VDC到40VDC 过电压阈值可在外部或外部编程设置为内部默认设置 集成功率路径nFET开关的低电阻确保了更好的性能电池充电系统应用的性能 它可以提供高达1A
  • 02链路预测

    什么是链路预测 链路预测是一个利用图网络做预测的经典任务 所谓链路 Link 指节点与节点之间的连接 也就是图论中的边 如上图所示 所谓链路预测就是预测原本不相连的两个节点之间是否有边存在 若是在有权图中 那就顺便还预测下相邻边的权重 如果
  • 微信小程序——image图片组件宽高自适应方法(可详细了!)

    前言 第一次做小程序的时候使用了image图片组件 src引用一张图片后 给图片的样式设置了width 100 发现图片变形了 我想要的效果是 图片在父级中的宽是占据父级元素的100 高度自动适应 按照html中的图片在浏览器中默认显示逻辑
  • 如何解决Linux删除文件但是磁盘空间大小并没有释放的问题?

    一句话解释是因为删除的文件正在使用 关键词 文件已删除 但是df没有正确显示磁盘剩余容量 lsof grep deleted 磁盘剩余空间明显不符合预期 删除一个大文件 但还是提示磁盘空间已满 No space left on device
  • 从0写bootloader — 最简单的bootloader和App

    地址空间划分 对于空间划分是人为定义的 bootloader编写 启动文件start s PRESERVE8 instruct is aligned by 8 bytes 指令集8字节对齐 THUMB use Thumb instructi
  • CISCN2022全国初赛题解WriteUp-MapleLeaves

    MapleLeaves WriteUp 队员 Do1phln b477ery sfc9982 0HB Web Ezpop thinkphp 6 0 12lts 存在反序列化漏洞 https www freebuf com vuls 3215
  • Unity销毁对象的问题

    最近踩了一点坑 对象有时立即销毁比较好 不然有奇怪的错误发生 比如新旧同名骨骼替换 之前的最好parent null 然后Destroy obj 如果只写Destroy的话 由于Destroy是延迟销毁对象 那么新骨骼Instantiate
  • stm32 IO输出举例

    以控制有源蜂鸣器为例 有源蜂鸣器是自带震动源的器件 无源蜂鸣器则需要方波来模拟震动源 1 硬件连接 我们可以看到蜂鸣器接在PB8 而且不是直接使用IO驱动蜂鸣器 蜂鸣器功率比较大 一般都会使用三极管作为输出控制 我们可以看到黄色部分说明了P
  • zookeeper配置

    基本事件单元 以毫秒为单位 必须 tickTime 2000 监听客户端连接的端口 必须 clientPort 2181 存储快照的目录 必须 dataDir F server0 zookeeper 3 4 6 dataTmp log目录
  • C语言—总结2—数组,字符数组与字符串的关系,字符串操作函数,输入输出函数

    一 数组 1 一维数组的创建 数组是一组同类型元素的集合 类型符 数组名 常量表达式 lt 1 gt 一般方法 lt 2 gt 宏定义 数组创建时 内必须是一个常量 2 数组的初始化 数组的初始化是指在创建数组的同时 给数组一些对应的初始化