上篇文章讲述了二维数组的相关知识,本文我们接着来讲字符数组,和字符数组里要使用的一些函数,本文所有代码均匹配于VS环境下。
成都创新互联专业为企业提供城厢网站建设、城厢做网站、城厢网站设计、城厢网站制作等企业网站建设、网页设计与制作、城厢企业网站模板建站服务,10多年城厢做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
目录
一、前情介绍
二、怎样定义字符数组
三、字符数组的初始化
四、字符串和字符串结束标志
五、字符数组的输入和输出
字符型数据是以字符的ACSII代码存储在代码单元格中的,一般占一个字节。由于ASCII代码也属于整数形式,所以C99标准中,把字符类型归纳为整形类型中的一种。
二、怎样定义字符数组用来存放字符型数据的数组称为字符型数组,在字符数组中一个元素内存放一个字符。定义字符型数组的方法与定义数值型数组的方法类似,例如:
char arr[10];
由于字符型数组是以整数形式存放的,也可以用整形数组来存放字符型数据,缺点就是浪费空间,一个字符只占一个字节,而一个整形数据占四个字节,将字符放在整形数组中会浪费空间。
三、字符数组的初始化对字符型数组进行初始化,最容易理解的方法就是用“初始化列表” (这里的初始化列表在之前的数组的文章中进行过介绍,这里就不多进行描述),例如:
char arr[10]={'s','d','f','e','t','p','q','z','k','r'};
如果在定义字符数组时不进行初始化,那么数组中元素的值是不可预料的。如果花括号中提供的初值个数大于数组长度,则出现语法错误;如果初值个数小于数组长度,那么初值只会赋给前面的元素,后面的元素会自动赋值为空值,即‘\0’。
如果初值个数与预期个数相同,则可以省略数组长度,与之前的一维数组二维数组类似,当然字符型数组也有一维和二维之分。
四、字符串和字符串结束标志在C语言中,字符串是被当作字符数组来处理的,在实际工作中,人们往往关心的是字符串的有效长度,而不是字符数组的长度。例如:定义一个字符数组长度为100,而字符串的长度为60。所以为了测字符串的实际长度,C语言规定了“字符串结束标志”,即‘\0’。
如果字符数组中有若干字符,前9个都不是空字符,而第10个是空字符,那么认为空字符之前是一个字符串,而字符串的有效字符为9个。
注意:C系统会在字符数组存储字符串常量时自动加一个‘\0’,作为字符串结束的标志,例如:“Cprogram”共九个字符,但其存放在一维数组中占10的字节,最后的‘\0’是系统自动加的。
对C语言处理字符串的方法有了了解之后,再补充一种字符数组初始化的方法,即用字符串常量来对字符数组进行初始化,例如:
char arr[]={"I am happy"};
char arr[]="I am happy";
以上两种方式均可,这里是用一个字符串作为初值,很显然这种方法直观,方便更符合人们的习惯。
五、字符数组的输入和输出字符数组的输入输出可以有两种方法。
(1)逐个字符输入输出。用格式符“%c”输入或输出一个字符。
(2)将整个字符串输入或输出。用格式符“%s”输入或输出一整个字符串。
注意:
5.如果利用一个scanf函数输入多个字符串,则输入时应以空格分隔,例如:
scanf("%s%s%s",str1,str2,str3);
//输入数据How are you?
6.scanf函数的输入项如果是字符数组名,不要再加地址符“&”,因为再C语言中数组名代表数组中第一个元素的地址。
这是字符数组的相关内容,下一期进行字符数组相关函数的讲解,有需要的技术门持续关注,我会一直更新。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧