C 字符串函数&&多维数组
1.C 字符串函数
image使用字符串函数注意以下事项:
1、strlen()获取字符串的长度,在字符串长度中是不包括‘\0’而且汉字和字母的长度是不一样的。比如:
2、strcmp()在比较的时候会把字符串先转换成ASCII码再进行比较,返回的结果为0表示s1和s2的ASCII码相等,返回结果为1表示s1比s2的ASCII码大,返回结果为-1表示s1比s2的ASCII码小,例如:
image3、strcpy()拷贝之后会覆盖原来字符串且不能对字符串常量进行拷贝,比如:
4、strcat在使用时s1与s2指的内存空间不能重叠,且s1要有足够的空间来容纳要复制的字符串,如:
任务
小编这里出了一道题考考大家,看看大家对这节掌握的怎么样?
小编在主方法中定义了三个字符串数组变量,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)