注意一下这题,这个选B三个转义字符后遇到\0后strlen直接输出。
Strlen与sizeof不同这题用sizeof结果是10。
这个代码可以完成字符串的复制
这个也可以完成,因为非0为真,最后一个输出\0也就是0的时候判断为假,循环结束,完成复制赋值。
功能strcpy:复制
以下代码
输出会是以上结果,因为ab数组在计算机空间是连在一起的,helloworld把a[10]占满了而且没有’\0’,所以会继续越界输出与之相邻的b。所以该代码还要加一个在循环结束以后加一个a[n+i]=’\0’。
Strcat拼接操作:
字符串大小的比较:
用代码实现:
以上可以直接使用strcmp
strcmp函数是C语言中用来比较两个字符串的函数,其函数原型为:
int strcmp(const char *str1, const char *str2);
strcmp函数会比较参数str1和str2所指向的字符串,并返回一个整数值,根据不同的比较结果有不同的返回值规则:
- 如果str1等于str2,则返回值为0。
- 如果str1小于str2,则返回值为负数。
- 如果str1大于str2,则返回值为正数。
比较规则是按照ASCII码值逐个字符比较的。
二维数组:
本质上都是一维数组
二维数组的使用:
int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; //全部初始化
int a[3][4] = {{1,2,3,4},{0},{9,10,11,12}}; //按行初始化
int a[3][4] = {1,2}; //部分初始化
int a[3][4] ;//未初始化 默认随机值(垃圾值)
二维数组的赋值:
int a[3][4];
for (i = 0; i < 3; ++i)
{
for (j = 0;j < 4; ++j)
{
//a[i][j] = 表达式; //方式1
scanf("%d",&a[i][j]);
}
}
注意:
1.二维数组中,也可以是可变长数组
int a[n][n]; //n可以是个变量 ,但是使用时,数组不能初始化
2.二维数组中,可以省略行数,列数不能省略
int a[3][4];
//3可以省略 4不能省略
int[4] a[]; //本质上省略的还是一维数组的长度