Linux C语言学习第七天

1.选择排序

rand()函数获取随机值

2.二维整形数组:
    1.定义:
        数据类型 数组名[第一维数组的元素个数][第二维数组的元素个数];

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

        int a[2][3];

    2.数组元素的访问:
        数组名[行下标][列下表];

        a[0][0]
        a[0][1]
        a[0][2]
        a[1][0]
        a[1][1]
        a[1][2]

    3.初始化:
        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}};
            int a[2][3] = {0};
            int a[2][3] = {{0}};
        3.默认初始化
            行能省略,列不能省略
            int a[][3] = {1, 2, 3, 4};
            int a[][3] = {{1, 2}, {3}};

        注意:
            初始化 != 赋值 

            int a[2][3] = {0};

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

    4.二维数组的存储:
        int a[2][3];

        数组所占空间大小 = 每个元素所占字节大小 * 行数 * 列数

        连续性:数组的存储空间是连续的
        有序性:数组存放数据顺序有序   将二维数组逐行从左到右存储

        二维数组是由一维数组构成的一维数组

        N维数组:是由N-1维数组构成的一维数组

    5.二维数组的输入和输出

3.字符型数组:
    在C语言中没有字符串类型,只能通过字符型数组存放字符串

    1.数组的定义:
        数据类型 数组名[元素个数];

        char str[12];

        注意:
            1.字符型数组存放字符串,必须能够存放下末尾的\0字符
            2.元素个数必须为常量

    2.数组元素的访问:
        数组名[下标];

    3.数组元素的初始化 
        1.全部初始化:
            char str[6] = {'h', 'e', 'l', 'l', 'o', '\0'};  
            char str[6] = {"hello"};
            char str[6] = "hello";
        
        2.局部初始化:
            char str[6] = {'h', 'e', 'l'};
            char str[6] = {"hel"};
            char str[6] = "hel";
            char str[6] = {0};                      //对数组中所有元素清0
            注意:
                没有给定初值的元素被赋值为0('\0') ,不是'0'

        3.默认初始化:
            char str[] = {'h', 'e', 'l', 'l', 'o'};
            char str[] = {"hello"};         
            char str[] = {"hel"}

            注意:
                初始化 != 赋值

            char str[6] = {"hello"};                //对 
            char str[6];

            str = "hello";                          //错
            str[6] = "hello";                       //错 
            
    4.数组的存储:
        char str[6] = {"hello"};

        数组所占空间大小 = 元素个数 

        连续性:数组存放空间连续
        有序性:按照顺序依次存放

    5.字符串的输入和输出:
        printf("%s\n", str);
        puts(str);

        按照字符串打印:从字符串开头到第一个\0中间的内容打印

        scanf("%s", str);
        无法接收带' '的字符串 

        gets(str);
        可以接收带' '的字符串

    6.字符串常见操作:

    使用以下函数需要在最开始加上#include<string.h>


        1.字符串的赋值(字符串的拷贝):
            strcpy
            字符串拷贝函数 
            用法:
                strcpy(str, "hello world");
                strcpy(str, src);
            注意事项:
                目的空间必须能够存放下拷贝的字符串,否则会内存越界

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

            str = "hello world";            //错 
            strcpy(str, "hello world");     //对 

        2.字符串的拼接:
            strcat 
            字符串拼接函数
            用法:
                strcat(str, "world");
                strcat(str1, str2);
            注意事项:
                源字符串数组必须能够存放拼接后的字符串

        3.字符串的比较:
            strcmp 
            字符串比较函数
            用法:
                strcmp(str1, str2);
                
                结果 > 0  str1 > str2 
                结果 < 0  str1 < str2
                结果 == 0  str1 == str2

            注意事项:
                1.区分大小写
                2.两个字符串到右依次比较,不相同的ASCII码值谁大,字符串谁就大

        4.字符串的长度:
            strlen 
            获得字符串的长度(从字符串开头到\0中间元素的个数)
            用法:
                int len;
                len = strlen(str);

练习:
    1.从终端获得一个字符串,
      编写程序统计字符串长度(不能使用strlen)

    2.从终端接收一个字符串,统计该字符串中大写、小写、数字和空格的个数
       

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值