C语言基础5 - 数组

本文详细介绍了C语言中的数组概念,包括数组类型、初始化方法、输入输出、数组的应用(如冒泡和选择排序),以及二维数组和字符数组的处理。同时涉及了字符串操作和基本练习题。
摘要由CSDN通过智能技术生成

目录

一、数组概念:相同数据类型的集合

1.存储类型

2.数据类型

3.变量名

4.整数常量

5.注意事项

二、数组的初始化

三、数组的输入输出

四、数组的应用

五、二维数组

六、字符数组及字符串

小练习


一、数组概念:相同数据类型的集合

数据类型相同即可:整型,浮点型,数组

定义格式:

存储类型 数据类型 变量名【整数常量】;

 int num【10】;

定义一个整型的数据,包含10个整型成员,

1.存储类型

auto,static,extern,register   ----- 详见C语言基础1-数据类型

2.数据类型

基本数据类型

 char--short-int-long--long long--float--double

构造数据类型

数组 联合体 构造体

特殊数据类型
指针

3.变量名

        1.遵循C语言命名习惯

        2.行业习惯

        3.公司规范

4.整数常量

        1.必须是正整数,不能是0

        2.必须是常量,不能是变量,表达式,范围,字符串

数组成员的访问(引用)----

Num[5]-表示数组的第6个成员

5.注意事项

        1.在定义变量时,【】中的数字表示为成员个数,

        2.数组的个数为定义的整数,数组在访问时,【】中的数字为下标,值从0开始  0---n-1,下标可以用变量i表示

        3.数组中的成员存储地址默认按照单位连续(数据类型的字节大小)

eg: char str【128】;--按照1字节连续

Int num【10】;--按照4字节连续

        4.初始化,aotu类型的变量初始值为垃圾值,必须初始化

static类型的变量初始值是0,可以初始化,可以不初始化

二、数组的初始化

不初始化

Int num【10】;

只有static类型的数组可以不初始化,其他都需要

默认初始化

Int num10={0}

部分初始化-----------------------------部分初始化未定义项是0

Int num【10】;

Int num【10】={1,2,3,,5}错

全部初始化

Int num【10】={1,2,3,4,5,6,7,8,9,10};

不定长初始化

Int num[]={1,2,3,4,5};

不定长数组必须初始化,因此C语言中没有不定长数组,int num【】;是错误,会报错

Int num[]={0};

Int num[1]={0}; 可以但是不推荐

数组不允许赋值,数组名是个常量,也叫左值

三、数组的输入输出

计算数组中成员个数:sizeof(num)/size(num[0]):  数组大小除以第一个成员的大小

C语言没有用于数组输入输出的关键字

一般采用遍历输入输出,使用循环挨个输入与输出

四、数组的应用

双色球

选择手段:冒泡,选择排序

        4.1随机数获取方式

rand()%

头文件  <stdlib.h>

 srand(time(NULL));

 a=rand()%10

        4.2冒泡排序:将大数向后挪

i是已经排好的个数,j是交换的次数,1层循环最差交换n-1次

4.3选择排序:分别将第一个值和后面每个比较,找到小值标记,小数向前靠,一层循环最差交换1次

五、二维数组

数组的数组,也称为多维数组,一维数组打印一行,二维打印一页,三维表示多面

存储类型 数据类型【整型常量1】【整型常量2】;

Int num【3】【4】;定义一个二维数组num,3行4列

默认初始化 num【3】【4】={0};

部分初始化 num【3】【4】={1,2,3,4,5,6,7,8,9,10};

部分初始化 num【3】【4】={{1,2,3,4},{5,6,7},{8,9,10}};

不定长初始化num[][]

二维数组单个成员大小,num【0】---16字节大小

二维数组的数据类型是构造数据类型,本身不存在

        5.1输入输出:

采用双层for循环输入输出,i表示行,在前面

六、字符数组及字符串

C语言中没有字符串的关键字,所以采用字符型数组代替字符串

字符串和字符数组的区别:

字符串结尾带‘\0,而字符型数组中没有

字符型数组

定义格式:

存储类型 char 数组名【整型常量】;

 char str[128];

字符数组初始化:

        1.不初始化

        2.默认初始化

        3.部分初始化

 str[10]={"nihao"};-------初始化

 str[10]="nihao";---------赋值   这两个字符串数组的都是6个字符,后面有‘\n

        4.全部初始化

        5.不定长初始化

字符串的输入输出

        1.可以根据数组形式输入输出   %d改为%c

        2.字符型数组可以进行整体输入输出

 scanf(“%s”,str);---------字符型数组在输入时不加&符号,除了字符型数组外,其他数组都不能整体进行输入输出

printf(”%s“,str);

字符串处理函数:

字符串计算:strlen()

字符串拷贝:strcpy()---=

字符串比较:strcmp()----== <= >= != < >

字符串拼接:strcat()

Strlen --------- size_t strlen(const *s)

//size_t strlen(const char s[]);

功能:计算字符串s的长度

参数:字符串名s

返回值:>=0数字,字符串长度

strlen()计算的是实际占用的大小

sizeof()计算空间大小,

char *strcpy(char *dest,const char *src);

//char *strcpy(char dest[],const char src[]);

//作用  dest = src;

功能:将src字符串拷贝到目标内存dest处

参数:src 源字符串

     dest 目标内存

返回值:成功  dest的首地址

       失败  NULL

Strcmp----- char *stcpy(char *dest, const cahr *src);

 char

作用就是=

功能:比较字符串s1与s2的大小----不管长度,依次比较ascii码值大小

参数:s1,s2需要比较的两个字符串

返回值:>0---s1>s2    <0---s1<s2    =0---s1=s2

strcat

char *strcat(char *dest, const char *src);

//char *strcat(char dest[], const char *src[]);

功能:将字符串src拼接到dest的结尾

参数:src源字符串  dest目标字符串

返回值:成功  dest的首地址

       失败  NULL

 atoi(a)将字符串转化为整型数   atol   atof 长整型,浮点型

小练习

1.在字符串中,查找指定字符第一次出现的位置 while(dest【n】)

2.最后一次出现的位置

3.出现的次数 for   f++

一串数字以%s输入,%d输出

4.将字符串转换为整形数

5.将整型数转换为字符串 

6.在a字符串中查找b字符串出现的次数

7.二维数组完成 15*15棋盘画面

  • 11
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值