首页 > 其他分享 >数组-复习

数组-复习

时间:2023-01-06 21:22:31浏览次数:36  
标签:字符 复习 常量 -- 数组 字符串 函数

知识来源:谭浩强《c程序设计》第六章

1.基础知识

-数组元素是有序的,一个数组中所有元素属于同一类型

-数组是从0开始的,不是从1开始的。

-对于整数型数组来说,结尾字符为整数;对于字符型数组来说,结尾字符为\0,占一个空间。

2.一维数组

  ①定义形式

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

②常量表达式可以包括常量和符号常量(如3+5),但是不能做动态定义,不能根据程序运行中变量值定义。

③初始化方法:可以全部赋值或者部分赋值。

如果给全部元素赋值,可以根据数据个数确定数组长度。如int a[]={1,2,3};

④对于未初始化的数组元素,系统会自动初始化。字符型数组初始化为’\0’,指针型数组初始化为NULL,其他数组初始化为0。

3.二维数组

①一般定义形式

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

②二维数组中元素排列的顺序是按行存放的,即先存放第一行,再依次存放其他行元素。

在内存中,各元素是连续存放的,不是二维的,是线性的。

③初始化方法

(1)分行赋值

int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

(2)全部写在一个括号里,按照内存中排列顺序对各元素赋初值

(3)可对部分元素赋初值

int a[3][4]={{1},{5},{9}};

int a[3][4]={{1},{},{9}};

(4)如果对全部元素赋初值,则定义时第一维长度可以不指定,但第二维长度不能省略

int a[ ][4]={{0,0,3},{},{0,10}};

4.字符数组

①定义方式与定义数值型数组类似

例:char c[2];

c[0]=’i’;c[1]=’o’

②因为字符型数据是以整数形式(ASCII码)存放的,因此可以用整形数组来存放字符数据。

int c[10];

c[0]=’a’;

③初始化方法

(1)逐个赋值

char c[5]={‘l’,’0’,’v’,’e’};

    如果初值个数和预定数组长度相同,定义时可以省略数组长度。

(2)字符串形式(在C语言中,将字符串作为字符数组来处理。)

char str[]=”I love C”;

④字符串以’\0’作为结束标志,把它前边的字符组成一个字符串。

用字符数组存储字符串常量时会自动加一个’\0’作为结束符。

⑤下面两种定义形式等价

char c[]={‘l’,’o’,’v’,’e’,’\0’};

char c[]={“love”};

⑥字符数组不要求最后一个字符为’\0’,甚至可以不包括’\0’。

为了便于测定字符串长度,常常在字符数组后加一个’\0’。

⑦字符数组的输出与输入

-逐个字符输出:%c

-输出整个字符串:%s

-可以用scanf函数输入一个字符串。scanf(“%s”,c);

5.字符串处理函数

(1)puts函数——输出字符串的函数

--形式:  puts(字符数组)

--可以包含转义字符,输出完字符串后换行(把结束的’\0’换成’\n’)

 

(2)gets函数——输入字符串的函数

--形式:  gets(字符数组)

注:puts和gets只能处理一个字符串

 

(3)strcat函数——字符串连接函数

--形式:strcat(字符数组1,字符数组2)

--把字符串2接到字符串1的后面,结果放在字符数组1中,得到字符数组1的地址。

--连接时把字符串1后面的’\0’取消,只在新字符串的最后保留。

 

(4)strcpy和strncpy函数——字符串复制函数

--形式   strcpy(字符数组1,字符串2)   

-字符串2可以是字符数组名,也可以是字符串常量

-作用:将字符串2复制到字符数组1中

--字符数组1的长度不应小于字符串2的长度

--如果复制前没有对str1数组初始化,除str2复制过去的内容和其后的’\0’,其后字节内容不能确定

--可以用strncpy将字符串2前面几个字符复制到字符数组1中去。

例: strncpy(str1,str2,2);   把str2前两个字符复制过去取代str1前两个字符。

--不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。字符数组名是一个地址常量,不能改变值。

Str1=”China”;

Str1=Str2;都是错误的

 

(5)strcmp函数——字符串比较函数

--形式   strcmp(字符串1,字符串2)

strcmp(“China”,”korea”);

  --规则:将两个字符串自左往右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到’\0’为止。

--如果出现不同字符,以第一对不相同的字符比较结果为准。若相同,函数值为0;若str1>str2,函数值是正整数;若str1<str2,函数值是负整数

--如果两个字符串都由英文字母组成,则在英文字典中位置在后面的为“大”。

(6)strlen函数——测字符串长度的函数

--形式   strlen(字符数组)

--不包括’\0’,可以直接测定字符串常量的长度。

 

 

 

标签:字符,复习,常量,--,数组,字符串,函数
From: https://www.cnblogs.com/rhz-blog/p/17031605.html

相关文章

  • 树状数组笔记整理
    树状数组用途单点增加求逆序对动态维护前缀和树状数组介绍树状数组,顾名思义,就是树状的一维数组。二叉树同样也可以用一维数组存储。我们以二叉树进行......
  • 数组处理
    一、PHP获取二维数组中某一列的值集合 PHP还是比较常用的,于是我研究了一下PHP二维数组。在处理php数组的时候,有一种需求特别的频繁,如下二维数组:$arr=array(......
  • LeetCode 删除数组中重复项 26 80
    26(80)给你一个升序排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次(使得出现次数超过两次的元素只出现两次),返回删除后数组的新长度。元素的相对顺......
  • js 数组的splice
    splice():删除、插入和替换1、删除:指定2个参数:要删除的第一项的位置和要删除的项数。书写格式:arr.splice(0,2)2、插入:可以向指定位置插入任意数量的项,只需提供3......
  • 第3章:数组
    1、数组的概述数组(Array):是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。数组的相关概念:    数组名:数组的名称......
  • 稀疏数组
    用途:将普通数组转为稀疏数组来达到节省空间的目的介绍:代码: importcn.hutool.core.util.ObjectUtil;importorg.junit.Test;publicclassSparseArrayTest{......
  • 数组字符串转数组
    数组字符串转数组Stringstr="[262698,262699,262701]";Integer[]integers=JSON.parseObject(str,Integer[].class); //二维数组字符串转二维数组Stringstr......
  • 2023.1.06 java打印杨辉三角(二维数组)
    publicclassyanghui{publicstaticvoidmain(String[]args){int[][]yanghui=newint[10][];for(inti=0;i<yanghui.length;i++){......
  • 文件和byte数组之间相互转换
    文件转换成byte数组文件转换成byte数组有两种方式:1.传统方式Filefile=newFile("/temp/abc.txt");//initarraywithfilelengthbyte[]bytesArray=newbyte[......
  • Shell 数组
    数组中可以存放多个值。BashShell只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与PHP类似)。与大部分编程语言类似,数组元素的下标由0开始。Shell数组用括......