二维数组的学习

本文详细介绍了C语言中二维数组的定义、元素访问、初始化方法,以及字符型数组、字符串的特性和操作,包括字符串长度计算、复制、拼接和比较。
摘要由CSDN通过智能技术生成

一、二维数组

#定义

        数据类型 数组名[行数][列数];

#元素的访问

        数组名[行下标][列下标]

#数组的初始化

        1. 全部初始化:

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

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

    2. 局部初始化:

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

                int a[2][3] = {{1,2},{3}};未给定初值的元素为0值;

    3. 默认初始化:

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

                int a[][3] = {1, 2, 3, 4};   行可以省略,列不能省略;   

4. 二维数组的存储:

                连续性:数组存放的空间连续;

                有序性:存放顺序有序;

                 int a[2][3],共6个元素,占据24字节的空间;

二、字符型数组

#定义

                char 数组名[元素个数];

        1. 元素个数大小必须能存放下字符串和末尾的‘\0’字符;

        2. 要存“hello”就至少要有6个元素,少于6个就会越界;

#字符型数组和字符串的区别

        1. 字符串:一定包含末尾的'\0'字符;

        2. 字符型数组:一组字符的集合,最末尾不需要一定是‘\0’字符;

#字符串的输入输出

        输出:

           1. printf("%s\n", str);

                ( %s 会打印从第一个字符开始到最近的\0字符结束;若没有'\0'字符会越界打印。)

           2. puts(str);

        输入:

           1. scanf("%s", str);

                scanf只能接收不带‘ ’的字符串;

           2. gets(str);

                接收所有字符串后额外接收一个‘\0’字符;

#字符型数组的初始化

        1. 全部初始化:

           char str[4] = {'h','g','i','\0'};

           char str[4] = {"hgi"};

        2. 局部初始化:

           char str[4] = {'h','g','\0'};

           char str[4] = {0};  -------清零;

           0  -> '\0';

           48 -> '0'

        3. 默认初始化:

           char str[] = {"hello"};

           char str[] = "hello";

#获得字符串长度:strlen

        strlen ---- 给定一个字符串获得其长度;

#字符串的拷贝: char str[32];

        strcpy(str, "hello world"); ----将字符串“hello world\0”拷贝到str数组中;

#字符串拼接:

        char str[32] = {"hello"};

        char dst[32] = {"welcome"};

        strcat(str, "!"); ----将‘!’拼到str后;

        strcat(dst, "~");

#字符串的比较:   

        char str[32] = {"hello"};

        char dst[32] = {"welcome"};

        strcmp(str, dst); --- 比较两个字符串

        返回值 = 0:两个字符串相同;

        返回值 > 0:第一个 > 第二个;

        返回值 < 0:第一个 < 第二个;

        两个字符串从左至右依次,比较第一个不相同的字符对应的ASCII码,ASCII码大的对应的字符串大。

三、字符型二维数组

        1. 定义:        char str[第一维][第二维];          char str[5][32];

        2. 初始化:

                               1. 局部初始化:

                                              char str[5][32] = {{"halo"},{"how"},{"are"}};

                                              char str[5][32] = {"hello", "how", "are"};

        3. 字符串的遍历:

        char str[32] = {"hello"};

        int i = 0;

        while(str[i] != '\0')

        {

                str[i];

                i++;

        }

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值