C语言—总结2—数组,字符数组与字符串的关系,字符串操作函数,输入输出函数

一.数组

   1.一维数组的创建

              数组是一组同类型元素的集合

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

       <1>一般方法

                                                 

       <2>宏定义

                                                 

 **数组创建时,[]内必须是一个常量。

 2.数组的初始化

     数组的初始化是指在创建数组的同时,给数组一些对应的初始化值。

                            

 3.求数组长度

     <1>整型   int len=sizeof(arr)/sizeof(arr[0]);  

     <2>字符串   int len=strlen(arr);

注意 **1.数组是具有相同类型的集合,数组的大小(即所占字节数)由元素个数乘以单个元素的大小。
           2.数组只能够整体初始化,不能被整体赋值。只能使用循环从第一个逐个遍历赋值。
           3.初始化时,数组的维度或元素个数可忽略,编译器会根据花括号中元素个数初始化数组元素的个数。
           4.当花括号中用于初始化值的个数不足数组元素大小时,数组剩下的元素依次用0初始化。
           5.字符型数组在计算机内部用的时对应的ascii码值进行存储的。
           6.一般用”“引起的字符串,不用数组保存时,一般都被直接编译到字符常量区,并且不可被修改。

2.二维数组

    1.二维数组的创建

                      

   2.二维数组的初始化

                       

 注意:
          花括号中的一个花括号代表一个一维数组的初始化。当里面无花括号分组时,按照顺序从第一个开始逐个进行初始化。余下的未赋值的元素用0初始化。

    3.计算长度

       <1>  int len =sizeof(arr[0][0]);   //计算数组首元素大小

       <2>  int len =sizeof(arr)/sizeof(arr[0][0]);   //计算数组元素个数

二.字符数组与字符串的关系

  1.字符数组

      字符数组的定义:用来存放字符量的数组称为字符数组。

     其定义的一般形式是:char 数组名[数据长度];字符数组用于存放字符或字符串,字符数组中的 一个元素存放一个字符,它在内存中占用两个字节。

   2.字符串

      字符串:是由”“包括起来的字符序列。字符串的结束标志是‘\O’,由数字、字母、下划线组成的一串字符。用双引号括起来的一串字符就是字符串常量,它的末尾将由系统自动添加一个字
符串结束标志‘\0’。
       在c语言中不能定义字符串,但是在c语言中使用字符串,通常会用字符数组来模拟字符串,必须是’\0'结尾的字符数组。如果字符数组没有‘\0'结尾,那该字符数组就是普通的字符数组,不是字符串。

2.分类说明

   <1> char arr[5]={'h','e','l','l','o'};   //是字符数组,不是字符串,因为数组容量为5,没有‘\0’的位置,没有一‘\0’结尾。

   <2>  char arr[5]={'h','i'};    //是字符数组也是字符串,容量为5的数组只有两个元素,自动一’\0‘结尾

  <3>   cahr arr[5]="hello";  //是字符串也是字符数组,由“”括起来的自动以'\0'结尾

 3.总结

     <1>. 判断字符数组是否为字符串,就得看他末尾有没有'\0'。
     <2>. 注意判断是否有隐含的\O'。
     <3>. 字符串在C语言中输出字符串时会逐个扫描字符,直到遇见\0'才结束输出。

三.字符串操作函数

   1.strlen

     格式: strlen(数组名);

     功能:统计字符串的长度,以’\0‘为结束标志,统计长度不包括’\0‘。

     代码实现:

              C语言—总结2—数组,字符数组与字符串的关系,字符串操作函数,输入输出函数_第1张图片C语言—总结2—数组,字符数组与字符串的关系,字符串操作函数,输入输出函数_第2张图片               

              C语言—总结2—数组,字符数组与字符串的关系,字符串操作函数,输入输出函数_第3张图片

 2.strcpy

     格式:strcpy(brr,arr);    //将arr的内容拷贝给brr

     功能:    //将arr的内容拷贝给brr

     代码实现:

           C语言—总结2—数组,字符数组与字符串的关系,字符串操作函数,输入输出函数_第4张图片C语言—总结2—数组,字符数组与字符串的关系,字符串操作函数,输入输出函数_第5张图片

           C语言—总结2—数组,字符数组与字符串的关系,字符串操作函数,输入输出函数_第6张图片

  3.strcat

     格式:strcat(arr,brr); 

     功能:将brr的内容连接到arr后面

     代码实现:

            C语言—总结2—数组,字符数组与字符串的关系,字符串操作函数,输入输出函数_第7张图片C语言—总结2—数组,字符数组与字符串的关系,字符串操作函数,输入输出函数_第8张图片

            C语言—总结2—数组,字符数组与字符串的关系,字符串操作函数,输入输出函数_第9张图片

 4.strcmp

      格式:strcmp(arr,brr);

      功能:比较两个字符串的大小

      代码实现:

   C语言—总结2—数组,字符数组与字符串的关系,字符串操作函数,输入输出函数_第10张图片C语言—总结2—数组,字符数组与字符串的关系,字符串操作函数,输入输出函数_第11张图片

   C语言—总结2—数组,字符数组与字符串的关系,字符串操作函数,输入输出函数_第12张图片

 四. 输入输出函数

  1.输入函数

      <1>. scanf

                 scanf("格式",地址);

      <2>. getchar

                getchar(字符串数组);

      <3>.gets

                  get(字符串数组);

      <4>.sscanf

                  作用:从一个字符串中读取指定格式的数据,以已有的字符串作为输入源。

                  sscanf("hello,world","%5s",arr);   //输出:hello

  2.输入函数

       <1>.printf

                    printf("格式",输出对象);

       <2>. putchar

                    putchar(字符串数组);

        <3>.puts

                    puts(字符串数组);

        <4>.sprintf

                   作用:将指定内容打印到字符串中.

                   格式:sprintf(arr,"%s's age is %d","zhangsan",18);    //输出:zhangsan 的年龄为18

你可能感兴趣的:(c语言,数据结构,开发语言)