考点11 字符数组与字符串《C语言程序设计》山东(春季高考)软件与应用技术类 知识点讲解
山东省(软件与应用技术类)春季高考
《C语言程序设计》复习讲义
模块 一 C 语言程序设计
考点 11 字符数组与字符串
【考纲要求】
(1)掌握字符数组的定义及引用。
【知识网络】
【知识和技能要点】
一、字符数组的定义与初始化
1. 定义形式与元素
原创精品资源学科网独家享有版权,侵权必究
学科网(北京)股份有限公司
字符数组者,元素为字符之数组也,其定义为 char 后接数组名与长度,如 char s[6];。其下标仍自零始,s[0] 至 s[5] 凡六元素,每元素存一字符,占一字节。赋值之时,所予者可为字符常量,亦可为整型之 ASCII 码值。字符数组之所以要,盖 C 语言以字符数组存字符串,故字符串之处理,实即字符数组之处理。
(1)形式:char s[6]; 下标自零,凡六元素。
(2)元素之容:一元素一字符,占一字节。
(3)所赋之值:字符常量或整型 ASCII 值。
2. 字符串结束标志
C 语言以 '\0'(ASCII 值为零之字符)为字符串之结束标志。凡书字符串常量者,系统自动于其末添一'\0',故七字符之串,于内存实占八字节。故字符数组之长度,至少须为串长加一,方足容其结束符。数组之长与串长不同:数组长十者,其可容之串未必长十;而求串长时亦不以数组长度为据,唯数至 '\0' 而止。
(1)标志:'\0' 为串之终,其 ASCII 值为零。
(2)常量之存储:串末自动添 '\0',故占字节为串长加一。
(3)长度之辨:数组长度不等于串长;求串长数至 '\0' 止。
3. 初始化的三种写法
字符数组之初始化,其法有三。一为逐字符赋之,未及者补零,即 '\0',如花括号中列七字符而数组长十,余三者为零。二为以字符串常量赋之,如 char s[10]="perfect";,系统自添 '\0' 于末。三为省略长度,如 char s[]="perfect";,编译器据常量之字符数加一,定为八。三法之中,后二者最便。
(1)逐字符:花括号中列各字符,未及者补 '\0'。
(2)字符串常量:如 char s[10]="perfect";,自添结束符。
(3)省略长度:如 char s[]="perfect";,长度定为八。
二、字符数组的引用与输入输出
1. 逐个元素引用
字符数组之元素,可以下标逐一引用,与整型数组无异。如以 "hello" 初始化之数组,s[0] 为 'h',s[4] 为 'o',s[5] 则为 '\0'。故遍历之时,或以数组长度为界,或验其是否已至 '\0' 而止。凡大小写转换、字符计数、逆序、加密之属,皆以逐元素处理为常法。
原创精品资源学科网独家享有版权,侵权必究
学科网(北京)股份有限公司
(1)引用:s[i] 与普通变量无异,可赋值可运算。
(2)例:"hello" 之数组,s[0] 为 'h',s[5] 为 '\0'。
(3)处理:大小写转换、计数、逆序皆以逐元素为常法。
2. 整体输入
字符数组可以整体输入。其法有二:一为以 %s 读之,遇空白即止,故不能读入含空格之串,且数组名前不加取地址符,盖数组名本即地址。二为以 gets 读之,读入一行至回车为止,可以含空格。二者皆须先包含头文件 stdio.h。用 %s 时尤须留意,输入之字符数不得逾数组容量,否则越界。
(1)%s 之法:遇空白即止,数组名前不加 &。
(2)gets 之法:读至回车,可含空格。
(3)注意:须含 stdio.h;输入字数不得逾数组容量。
3. 整体输出
字符数组亦可以整体输出。或以 %s 之格式输出,至 '\0' 而止,不自动换行;或以 puts 输出,于串后自动换行,故 puts(s) 与 printf("%s\n", s) 略同。若串中藏有 '\0',则其后之字符不复输出。又输出之时,只须书数组名,不可加下标,亦不可加取地址符。
(1)%s 之法:输出至 '\0' 止,不自动换行。
(2)puts 之法:输出后自动换行,与加换行之 %s 略同。
(3)注意:书数组名即可,不加下标与 &;遇 '\0' 即止。
三、常用字符串函数
1. 求串长函数 strlen
strlen 者,求串长之函数也,其值为自串首至首个 '\0' 前的字符个数,不含 '\0'。故以 "perfect" 初始化之数组,strlen 为七,而 sizeof 为八,二者不可相混:前者为串长,后者为数组所占字节数。转义字符如 \t、\n 各按一字符计。用此函数须包含头文件 string.h。
(1)作用:数至首个 '\0' 前的字符个数,不含 '\0'。
(2)例:"perfect" 之 strlen 为 7,sizeof 为 8。
(3)头文件:须含 string.h;转义字符按一字符计。
2. 复制与连接 strcpy、strcat
原创精品资源学科网独家享有版权,侵权必究
学科网(北京)股份有限公司