相关文章推荐

6.2.2 怎样引用二维数组

二维数组元素的表示形式为

数组名[下标] [下标] 下标应是整形表达式(对常量使用运算符连接进行运算)

6.2.3 二维数组的初始化

  1. 分行给二维数组赋初值 分行给二维数组赋值.png
  2. 可以,将所有数据卸载一个花括号内,按数组元素在内存中的排列顺序对个元素赋值。 将数据写在一个花括号内.png
  3. 可以对部分赋值。没有赋值的部分,系统会自动赋值为0 对部分元素赋值.png
  4. 如果对全部元素都赋值,则定义数组是对第一维长度可以不指定,但第二维的长度不能省。 全部元素赋值省略第一维长度.png
  5. 6.2.4 二维数组程序举例

    # include <stdio.h>
        二维数组元素互换 
    int main()
        int a[2][3]={1,2,3,4,5,6};
        int b[3][2];
        int i,j;
        for(i=0;i<2;i++)
            for(j=0;j<3;j++)
                b[j][i]=a[i][j];
        for(i=0;i<3;i++)
            for(j=0;j<2;j++)
                printf("%d\t",b[i][j]);
            printf("\n"); 
        return 0;
    
    # include <stdio.h>
        找出二维数组中最大的数 
    int main()
        int a[2][3]={1,2,3,4,5,6};
        int max=a[0][0],i,j;
        for(i=0;i<2;i++)
            for(j=0;j<3;j++)
                if(a[i][j]>max)
                    max=a[i][j];
        printf("max=%d",max);
        return 0;
    

    6.3 字符数组

    6.3.1 怎样定义字符数组

    char c[10];

    c[10]=’3’;

    因为字符型数据是以ASCII码存放的,因此,也可以用整形数组存放字符

    6.3.2 字符数组的初始化

    一次将各个字符赋值给数组中各元素。

    部分赋值元素,剩余没有赋值的部分被系统自定义为空字符 ‘\0’

    不赋值,默认是null 即 ‘\0’

    6.3.3 怎样引用字符数组中的元素

    可以引用字符数组中一个元素,得到一个字符。

    6.3.4 字符串和字符串结束的标志

    在C语言中是将字符串作为字符数组来处理的。

    C语言规定了一个“字符串结束的标志”,以null 即’\0’ 作为结束标志。

    如果字符数组中存有若干个字符,前9个字符都不是空字符,而地10个是’\0’ ,它的有效字符为9个,也就是说遇到字符’\0’时,表示字符串结束,把它前面的字符组成一个字符串。

    null字符的位置决定了字符数组的长度,或是字符串的长度。

    字符数组初始化一种方法:使用字符串常量来使字符数组初始化。

    如:char c[]={“i am student.”};也可以省略花括号

    ​ char c[]=”i am student.”; 空字符也是字符串的长度的一部分,字符串的长度还要加一个空字符的位置。

    ​ char c[]=”i am student.”;等价于a[] 与d[]不一样

    ​ char a[]={‘i’,’ ‘,’a’,’m’,’ ‘,’s’,’t’,’u’,’d’,’e’,’n’,’t’,’.’,’\0’};

    ​ char d[]={‘i’,’ ‘,’a’,’m’,’ ‘,’s’,’t’,’u’,’d’,’e’,’n’,’t’,’.’};

    说明:字符数组并不要求它的最后一个字符为null,甚至可以没有null

    ​ 但为了处理方法一致,便于测定字符串的实际长度,在字符数组中加一个’\0’.便于引用字符数组中的字符串。

    6.3.5 字符数组的输入输出

    字符数组的输入输出:

    1.逐个字符输入输出,用格式符 %c 输出或输入一个字符

    2.将整个字符串一次输入或输出。用%s格式符

    ​ 如: char c[]={“chair”};

    ​ printf(“%s\n”,c);

  6. 输出字符不包括’\0’

  7. 使用%s时,printf函数中输出项是字符数组名,而不是数组元素名。

  8. 如果数组长度大于字符串时,当检测到null时结束

  9. 当数组中包含多个null是,遇到第一个null输出结束

  10. 可以用scanf函数输入一个字符串。如:scanf(“%s”,c);

    scanf函数输入项是字符数组名,不需要使用地址符,因为在C语言中数组名代表该数组的起始位置。

  11. printf(“%s\n”,c); 执行过程,找到数组名c的起始位置,然后逐个输出其中的字符。直到遇到null 即’\0’时停止

    6.3.6 使用字符串处理函数

    puts函数 输出字符串的函数

    puts(字符数组) 作用是将一个字符串(以’\0’结束的字符序列)输出到终端。

    gets函数 输入字符串的函数

    gets(字符数组) 目的是向字符数组输入一个字符串

    注意puts和gets函数只能输出或输入一个字符串

    strcat函数 字符串连接函数

    strcat(字符数组1,字符数组2),作用是将两个字符串连接起来

  12. 字符数组1必须足够大,才能容纳连接后的新字符串。
  13. 连接后,字符串1的’\0’取消,只保留字符串2的’\0’
  14. strcpy和strncpy 字符串复制函数

    strcpy(字符数组1,字符串2) 将字符串2复制到字符数组1

  15. 字符数组1的长度要等于或大于字符串2
  16. 字符数组1必须是数组名,字符串2既可以是字符数组名,也可以是一个字符串常量。
  17. 字符串2会替换掉字符数组1前字符串2的字符,剩余的不变
  18. 不能使用赋值语句将一个字符串常量或字符数组直接给一个字符数组。只能使用strcpy函数将字符串赋值到另一个字符数组里去。
  19. 可以使用strncpy函数将字符串2前面n个字符赋值到字符数组1去。 strncpy(字符数组1,字符串2,几个字符);
  20. strcmp函数 字符串比较函数

    strcmp(字符串1,字符串2) 比较字符串1和字符串2 比较的是内容是值

  21. 比较规则:将两个字符串自左到右逐个字符相比(按ASCII码值进行比较)直到出现不同字符或遇到’\0’为止
  22. 全部字符相同,则认为两个字符串相等;
  23. 如果出现不相同字符,则以第一对不相同的字符比较结果为准。
  24. 不能直接使用数组名比较字符串,只能用strcmp函数进行比较
  25. strcmp的返回值

  26. 0代表两个字符串相等
  27. 正整数表示字符串1>字符串2
  28. 负整数表示字符串1<字符串2
  29. strlen 函数 测试字符串长度的函数

    strlen(字符数组);

    函数的值为字符串的实际长度,不包括’\0’

    strlwr函数 转换为小写

    strlwr(字符串);

    将字符串中大写字母转换为小写。

    strupr函数 转换为大写

    strupr(字符串);

    将字符串中小写字母转换为大写。

 
推荐文章