A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Day10 笔记

1,二维数组的声明:
        行数在给了数据的时候,有时候可以省略,会自动计算
        但是 在声明二维数组的时候,列数一定不能省略 否则会报错。


2,int count = sizeof(arr) / sizeof(arr[0][0]);
        int rows = sizeof(arr)/sizeof(arr[0])
        int cols = sizeof(arr[0]) / sizeof(int)


3,二维数组和函数

   1),当一个函数的参数是一个一维数组的时候,那么我们在调用这个函数的时候。
           可以传入一个二维数组的行

           因为二位数组的行本身就是一个一维数组

   2),二维数组也能作为函数的参数

           当函数的参数是一个二维数组的时候,在调用传参的时候
           实参必须要是同类型的数组

           会丢失长度 一样 sizeof也是8

           当二维数组作为参数的时候,行数没有什么用,可以省略
           但是列数不能省
           如果没有列数:会报错
           实参的列数和形参的列数需要保持一致

           传递二维数组的时候 同时还需要传递行数和列数。

   3),void test( int rows, int cols, int arr[][cols]);


4,字符串就是字符数组

   是以 ‘/0’ 结束的 ‘/0’没有意义 打印的时候不会显示任何内容

   最根本的方式;
   char name[5] = {‘j’,’a’,’c’,’k’,’\0’};
   char name[] = {‘j’,’a’,’c’,’k’,’\0’};

   简写的方式:
   char name[] = {“jack”};

   最常用的方式:
   char name[] = “jack”;
   注意:没有声明长度的时候 为字符串长度+1 =5
            声明了长度 长度就是声明的值。
            如果声明的长度小于字符串长度+1,就会出现存储不下。

   所以,一般情况下,我们使用字符数组存储字符串,在声明字符数组的时候
            我们不指定长度,让编译器自动计算。

   声明字符数组的同时初始化一个字符串时,可以使用中文。
   这个时候,一个中文占据3个字节 。


5,如何输出在存储在字符数组中的字符串数据。

   char chs[] = “jack”;
   printf(“chs = %s\n”,chs);
   输出原理:%s 从数组地址开始输出字符 直到 \0 结束
   char chs1[] = {‘r’,’o’,’s',’e’,’\0’};
   char chs0[] = {‘j’,’a’,’c’,’k’};
   printf(“%s”,chs0);    结果为jackrose


6,如何从控制台输入字符串数据

   char str[10];
   scanf(“%s”,str) 数组名代表数组地址 所以不需要加&符号

   原理:会讲用户从控制台输入的数据存入字符数组中去,并自动追加 \0

   注意:如果输入的字符串的字符的个数超过了 数组的长度-1 这时候会存储不下 会报错
            当我们输入的时候,如果输入了空格 会认为输入结束
            空格和空格后面的内容不会接受了


7,计算存储在字符数组中的字符串的长度

   字符串的长度:字符串字符的个数

   不能使用sizeof 因为存储在字符数组中,时有可能存不完的。

   int length = 0
   while(1){
      if(str[length] != ‘\0’){
         length++
      }else{
         break;
      }
   }


8,字符串常用函数

     void puts(char arr[]);
     puts(arr);

     void gets(char arr[]);
     gets(arr);   特点:scanf函数遇到空格结束接受  gets函数接受空格

     这两个头文件是stdio.h
     这两个会不安全 如果接收的字符串数组长度不够 会报错

     一下四个函数的声明在string。h中

     strcmp(str1,str2)函数:比较两个字符串大小
     从第1个字符开始比较 返回正数 负数 0

     strlen(str)函数:计算字符串长度
     返回值是unsigned long 1个1个计数 直到遇到 \0 为止

     strcpy(str1,str2) :把str2拷贝给str1
     如果str1 太小 存不下str2 那么会报错

     strcat(str1, str2)函数:把str2的数据存储在str1后面
     如果str1 太小 存不下多出来的str2  就会报错

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马