C 字符串函数&&多维数组

2019-11-22  本文已影响0人  coder1003

1.C 字符串函数

常用的字符串函数如下:

image

使用字符串函数注意以下事项:
1、strlen()获取字符串的长度,在字符串长度中是不包括‘\0’而且汉字和字母的长度是不一样的。比如:

image

2、strcmp()在比较的时候会把字符串先转换成ASCII码再进行比较,返回的结果为0表示s1和s2的ASCII码相等,返回结果为1表示s1比s2的ASCII码大,返回结果为-1表示s1比s2的ASCII码小,例如:

image

3、strcpy()拷贝之后会覆盖原来字符串且不能对字符串常量进行拷贝,比如:

image

4、strcat在使用时s1与s2指的内存空间不能重叠,且s1要有足够的空间来容纳要复制的字符串,如:

image

任务

小编这里出了一道题考考大家,看看大家对这节掌握的怎么样?

小编在主方法中定义了三个字符串数组变量,s1、s2、s3请根据本节所学,使用printf格式化输出语句输出s1,使其结果为

image
#include <stdio.h>
#include <string.h>
int main()
{
    char s1[100]="";
    char s2[]="我爱,";
    char s3[]="慕课网";
    /*在以下补全代码*/
    strcpy(s1,s2);
    strcat(s1,s3);
    
    printf("%s\n",s1);
    return 0;    
}

2.多维数组

多维数组就好比去超市买东西,用购物袋把所买商品分类存放,然后将所有的购物袋放到一个大的购物袋中,这样就形成了一个多维数组了。

多维数组的定义格式是:

数据类型 数组名称[常量表达式1][常量表达式2]...[常量表达式n];

例如:


image.png

定义了一个名称为num,数据类型为int的二维数组。其中第一个[3]表示第一维下标的长度,就像购物时分类存放的购物;第二个[3]表示第二维下标的长度,就像每个购物袋中的元素。

我们可以把上面的数组看作一个3×3的矩阵,如下图:

image.png

多维数组的初始化与一维数组的初始化类似也是分两种:

1、数据类型 数组名称[常量表达式1][常量表达式2]...[常量表达式n] = {{值1,..,值n},{值1,..,值n},...,{值1,..,值n}};

2、数据类型 数组名称[常量表达式1][常量表达式2]...[常量表达式n]; 数组名称[下标1][下标2]...[下标n] = 值;

多维数组初始化要注意以下事项:
1、采用第一种始化时数组声明必须指定列的维数。因为系统会根据数组中元素的总个数来分配空间,当知道元素总个数以及列的维数后,会直接计算出行的维数;
2、采用第二种初始化时数组声明必须同时指定行和列的维数。

#include <stdio.h>
int main()
{
    //使用第一种方式初始化方式声明并初始化二维数组arr1
    //列必须初始化:int arr1[][2]
    int arr1[2][2] = {{10,20},{30,40}};

    //使用第二种方式初始化方式声明并初始化二维数组arr2
    //行和列必须初始化
    int arr2[2][2];
    arr2[0][0] = 10;
    arr2[0][1] = 20;
    arr2[1][0] = 30;
    arr2[1][1] = 40;

    for(int i = 0; i < 2; i++){
     for(int j = 0; j < 2; j++){
    printf("arr1[%d][%d] = %d,arr2[%d][%d] = %d\n",i,j,arr1[i][j],i,j,arr2[i][j]);
     }
    }
    return 0;    
}

以下二维数组定义错误的是(C)

屏幕快照 2019-06-04 下午5.18.18.png
上一篇下一篇

猜你喜欢

热点阅读