第四章 数组-基础知识(研究生复试精缩版)

目录

1数值数组

2字符数组

2.1字符串存储形式

2.2字符串表示形式

2.3字符串处理函数

2.4字符串数组的特点


1数值数组

常考一维数组、二维数组

表达形式的不同:一维数组就是包含一对中括号,二维数组包含两对中括号

2字符数组

字符数组有字符串和字符串数组。

补充知识点:

用双引号引起来的就是字符串,字符串由字符组成
字符串使用%s格式化输出
字符串以\0结尾,没有\0就不是字符串
只要是用双引号括起来的都是字符串
字符串的本质就是数组
注意: 字符串变量和普通的字符数组有一定的区别,C语言规定,字符串必须以\0结尾(作为字符串的结束符号),所以字符串变量的元素个数比字符数组的元素多一个\0

 

2.1字符串存储形式

在C语言中,字符串有两种存储方式,一种是通过字符数组存储,另一种是通过字符指针存储。 
 char c[10]="abcd";
 const char *c="adfdf"//将c声明为一个指向不变字符串的指针;如果不用const则会报错 

2.2字符串表示形式

有两种表现形式:字符数组、字符指针

char *p = "linux" ;

char a[] = "linux";

两种表现形式的区别:字符数组本身是数组,数组自身自带内存空间,可以用来存储东西;而字符指针是指针,本身永远只占4字节,而且这4字节还不能用来存储有效数据,所以只能把有效数据存放到其他的地方,然后把首地址存放在p中。

2.3字符串处理函数

字符串的处理函数大致可以分为字符串的输入、输出、合并、修改、比较、转换、复制、搜索几类,字符串函数也是他的一个形式。

1:输出函数
int puts(char const*strPtr);
输出字符串到显示器中去,传入的实参可以是字符串数组也也可以是字符指针
一般情况下我们用fputs来代替

2:字符串的输入函数
char *gets(char *strptr);
char *fgets();
从标准键盘输入一个字符串存放到指针strptr指向的字符数组,一般我们使用fgets来操作

3:获取字符串的长度
int strlen(char const*string);
获取字符串的长度,返回的是字符的个数,但是不会包括’\0’,结束符

4:字符串拷贝函数
char *strcpy(char*des,char*src);
char *strncpy(char *des,char *src,int size);
将src指向的字符串拷贝到des指向的字符串数组中去,结束符也一同进行拷贝,size参数也可以拷贝制定长度的字符串,建议des为字符数组
注意:目标尽量使用字符数组,因为如果是字符指针的话,分配的内存在常量池中,是不允许进行改变的,容易造成段错误

5:字符串的连接函数
char * strcat(const *char str1,const *char str2);
char *strncat(const *char str1,const *char str2,int size);
将str2指向的字符串连接到str1指向的字符后面,同时会删除str1后面的’\0’,返回的是str1指向字符串的首地址重点内容

6:字符串比较函数
int strcmp(const char * str1,const char *str2);
int strncmp(const char*str1,const char *str2,int size);
按照ascii码来进行比较,并由函数返回值进行判断
返回0,字符串1等于字符串2,
大于0,字符串1大于字符串2,
小于0,字符串1小于字符串2,

7:字符串分割函数
char* strtok(char *str,const char *delimiters);
根据delimiters指向的分割符号,将str指向的字符串分割成若干个子字符串,同时返回的是分割出的子字符串

8:字符串中是否包含字符
char * strchr(const char *,int c);//从做往右寻找字符c
char * strrchr(const char *,int c); //从有往左开始寻找字符c
判断字符串中是否包含字符串;

9:内存的初始化
memset(void *s,int c,size_t n);

10:内存的拷贝
memcpy(void *des,void *src ,size_t ,n);
 

2.4字符串数组的特点

无法将字符串赋值给字符数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值