C语言快速入门之二维数组和字符数组

本文详细介绍了C语言中二维数组(包括整型和字符型)的定义、引用规则、初始化方法,以及字符数组的逐个字符赋值、字符串赋值、输入输出和字符串处理函数(如fgets、strcat、strcpy和strcmp)的使用。
摘要由CSDN通过智能技术生成

1.二维数组

        1.二维数组的定义:

                数据类型    数组名[数组容量1][数组容量2]

           eg        int            arr[3][4] ;

           也就代表的是一个整形的3行4列的数组arr。

              7b3aad6cf3eb41c2964b8c003a18adbd.png

        2.二维数组的引用:

                数组名[下标1][下标2];

                  下标可以是整型表达式,如:a[2-1][2*2-1]

                 下标可以是已经有值的变量或数组元素, 如a[2*x-1][b[3][1]]

                 数组元素可以出现在表达式中, 如:b[1][2]=a[2][3]/2 

2.二维数组的初始化

        ①分行赋值:

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

      注意:花括号里面一个花括号代表一行;3行就要三个花括号。

       ②将所有数据写在一个花括号里:(按照存储顺序赋值)

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

       ③进行部分赋值:

             int a[3][4]={{1,2},{1,2},{0}}; 其余自动补零。

       ④若对全部元素赋初值,则定义数组时可不说明第一维的长度(一对方括号不能省),第二维的长度必须指明。如:

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

       ⑤分行赋值时也可省略第一维的长度说明:

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

3.字符数组

用于存放字符型数据的数组称为字符数组。

在C语言中,字符数组的一个元素只能存放一个字符。

        字符数组的定义:

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

                   char        ch1[5];   一维字符数组

                数据类型   数据名[常量表达式1][常量表达式2];

                   char        ch2[3][4];   二维字符数组

4.字符数组的初始化

        1.逐个字符赋值

                char  c[5]={'H','e','l','l','o'};

        注意:

        ① 如果定义时不初始化,元素值不确定;

        ② 如果提供的字符个数大于数组长度,则按语法错误处理;

            如果字符个数小于数组长度,后面的元素自动为空字符(‘\0’);

        ③ 如果提供的字符个数与数组长度相同时,可省略数组长度,系统会自动确定元素个数。适合字符个数较多时。

        2.字符串赋值

                char c[]={"Hello boys"};

                char c[]="Hello girls";           都可以

         注意:字符串赋值的话,后面有个'\0';因为C语言规定,字符串以字符'\0'结束。

5.字符数组的输入输出

        ①对字符数组的每一个元素进行输入或者输出

                eg:char  ch[10];

                        for(i=0;i<10;i++)

                        {        

                                scanf("%c",ch[i]);

                                printf("%c",ch[i]);

                        }

        ②将数组中的所有字符当作一个字符串进行输入或者输出。

                eg:  char str[100];

                        scanf("%s",str);

                        printf("%s",str);

        注意:在使用格式说明符%s进行输入输出时,其输入输出项均为数组名。

6.知识补充(字符串处理函数)

        1.fgets函数:从键盘接受字符串到字符数组

                char  str[64]={0};
                fgets(str,64,stdin);
                注意:64个数只能存63个最后一个还是'\0'的。

        2.strcat函数:进行连接字符串的

                strcat(字符数组1,字符数组2);     把2拼接到1后面。

        注意:①字符数组1的长度必须足够大,可以容纳被连接的字符串

                  ②连接后系统将自动取消字符串1后面的结束符'\0'。

                  ③“字符串2”可以是字符数组名,也可以是字符串常量,如

                     strcat(s1,"cdef") 。

        3.strcpy函数:进行字符串的拷贝

                eg:

                char  s2[ ]="abcde";

                char  s1[10];

                strcpy(s1,s2);

                printf("%s\n",s1);

        输出结果为:abcde

          注意:①字符数组1的长度必须足够大,可以容纳被连接的字符串。

                     ②“字符串2”可以是字符数组名,也可以是字符串常量,如

                         strcat(s1,"abcde")。

        4.strcmp函数:比较两个字符串对应位置字符ASCII码的大小。

                eg: char  s1[]="Helloboys";

                        char  s2[]="Hellogirls";

            可以看出字符数组s1和s2前五个元素一样,所以比较后面的,b的ascii码值小于g的ascii码值,所以s2>s1.   

        5.   strlen函数:测试字符串中包含的字符的实际个数。不含‘\0’。       

                strlen(字符数组);

                eg:char  str[10]="abcde";

                        printf("%d\n",strlen(s));  输出结果为5,不含'\0'。

              注意:在使用这个函数时,“字符串”可以是字符数组名,也可以是字符串常量。

        6.puts函数:用来输出字符串的

                puts(字符数组名/字符串);

           注意:输出的字符串中可包含转义字符。

                eg:char  str[]="China\nBeijing";

                       puts(str);

                输出结果为:

                        China

                        Beijing

 

  • 31
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值