数组的一些基本写法
//标准写法
char str0[10]={'g','e','n','i','u','s'};
//多出来的位数会默认为0来补齐
//也可以这样写
char str1[]={'a','b'};
char str2[]={'1','2'};
char str3[]={"hello word"};
//数组长度为10,无末尾标识符\0
//char str3[10]={"123"}这种末尾就有结束标识符,长度加一
char str4[]="hello";
char str5[255];//不初始化但必须有长度
//数组长度不允许是动态的,例如char str6[a]就不行
//数组写完后,会给最后一个值,默认填上数组结束符\0
- 可以对字符指针赋值,但不能对数组名赋值,例str5=“123”
介绍一些关于数组的常用函数
输入输出函数
//关于数组的函数
puts(str3);
//将str3输出,且可以附带转义字符,输出完自带换行符
gets(str5);//从终端获得一个字符串给数组str5
puts(str5);
printf("%s\n",str0);
//问题,输出str1,会将str1与str0进行拼接然后一起输出
//输出str2时会将str1str0拼接一起输出
数组拼接函数
printf("%s",strcat(str5,str4));
//字符串数组合并函数,strcat(array1,array2)
//只能有两个参数,多的参数会被忽略
//将array2追加到array1后面
//str5必须设定足够长的长度,两者合并到str5中
//两者都有\n,合并时只保留最后一个数组的\n
//问题,不引用头文件时,依然能达到目标效果,但会报错
//头文件引用#include <string.h>
字符串复制函数
strcpy(str5,str4);
//将参数二复制到参数一中
//如果参数一中有值,会将其内容部分覆盖
//参数2长度3,参数1长度5,覆盖参数1前3位
//参数一长度必须足够大,来存放参数二
strcpy(str3,str4);
//str3原本为hello word,复制后为hello
//参数二也可以写成字符串形式,例
strcpy(str5,"i love you");
字符串比较函数
printf("%d\n",strcmp(str3,str3));//返回0
printf("%d\n",strcmp(str3,str4));//返回1
printf("%d\n",strcmp(str4,str3));//返回-1
返回字符串长度函数
strlen(str1);
strlen("this is a test");
printf("%d\n",strlen(str4));//输出5