资源描述:
《C语言程序设计教程教学课件李淑华 第09讲数组 2 .ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第九讲数组6.3字符数组与字符串6.4应用举例6.3字符数组与字符串6.3.1字符数组1.字符数组的定义一维数组的定义形式:char数组名[常量表达式];例如:charc[10];二维数组的定义形式:char数组名[常量表达式1][常量表达式2];例如:charb[3][4];用来存放字符数据的数组是字符数组。字符数组中的一个元素存放一个字符。charc[10]可写成intc[10]2.字符数组的初始化如:staticcharc[10]={‘w’,’‘,’r’,’y’,’d’,’g’,’I’,’s’,’c’,’u’};说
2、明:(1)如果花括号中提供的数值个数(即字符个数)大于数组长度,则作语法错误处理。(2)如果初值个数小于数组长度,则只将这些字符赋给数组中的前面那些元素,其余元素自动定为空字符(‘ ’)(3)如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。3.字符数组的引用例6.10输出一个字符串main(){charc[10]={‘I’,’‘,’a’,’m’,’‘,’h’,’a’,’p’,’p’,’y’};intI;for(i=0;i<10;i++)printf(“%c”,c[i
3、]);printf(“”);}运行结果:Iamhappy例6.11输出水晶石。main(){charc[5][5]={{‘‘,’‘,’*‘},{‘‘,’*’,’‘,’*’},{‘*’,’‘,’‘,’‘,’*’},{‘‘,’*’,’‘,’*’},{‘‘,’‘,’*’}};intI,j;for(i=0;i<5;i++);{For(j=0;j<5;j++);printf(“%c”,c[i][j]);printf(“”);}}6.3.2字符串1.字符串和字符串结束标志(1)字符串常量。字符常量是用双引号括起来的一串字符,
4、C语言约定用‘ ‘作为字符串的结束标志,它占内存空间,但不计入串的长度。’ ’的代码值为0。(2)在C语言中,字符串可以存放在字符型一维数组中,故可以用字符型一维数组处理字符串。2.用字符串常量给数组赋初值(初始化)。charc[6]=“chian”;说明:(1)如果提供的字符个数大于数组长度,系统报错;(2)如果提供的字符个数小于数组的长度,则在最后一个字符后加‘ ‘作为字符串结束标志。3.通过赋初值隐含确定数给长度。charstr[]=“china”;串的长度为6;系统自动在末尾加‘ ’charstr[]={
5、‘c’,’h’,’I’,’n’,’a’};串的长度为5;注意:若定义的字符数组准备作为字符串使用,则要求其最后一个字符为‘ ’。4.字符串的输入和输出(1)逐个字符输入输出函数。(a)在标准输入和输出函数printf和scanf中,用格式符“%c”输入或输出一个字符。(b)使用gets和puts函数。(2)将整个字符串一次输入或输出。用格式符“%s“,输出字符串。例如:staticcharc[]={“china”};printf(“%s”,c);注意:(1)输出字符不包括结束符‘ ‘。(2)用“%s“格式输出字符串时
6、,printf函数中的输出项是数组名,而不是数组元素名。写成下面的形式是不对的:Printf(“%s”,c[0]);(3)如果数组长度大于字符串实际长度,也只输出到遇到‘ ‘结束。(4)如果一个字符数组中包含一个以上’ ‘,则遇到第一个’ ’时输出就结束。5.字符串处理函数(1)puts(字符串)——字符串输出函数。功能:将一个字符串输出到终端。输出的字符串包含转义字符。例如:charstr[]={“chinabeijing”};puts(str);输出:chinabeijing(2)gets(字符数组)——字
7、符串数组输入函数功能:从终端输入一个字符串到字符数组,该函数返回值是字符数组的起始地址。例如:gets(str);注意:用puts和gets函数只能输入或输出一个字符串,I不能写成:puts(str1,str2);或gets(str1,str2);(3)strcat(字符串1,字符串2)——连接两个字符串函数。功能:连接两个字符串中的字符,把字符串2接到字符串1的后面,结果放在字符串1中,函数调用后得到一个函数值——字符串1的地址。说明:(a)字符串1必须足够大,以便能容纳连接后的新字符串。(b)连接的前两个字符串后面都
8、有一个‘ ‘,连接时将字符串1后面的’ ’取消,只在新串的最后保留一个’ ’。(4)strcpy(字符数组,字符串)——字符串拷贝函数功能:将字符串拷贝到字符数组中去。例如:charstr1[10],str2[]={“china”};strcpy(str1,str2);执行结果:china 说