资源描述:
《C语言全国计算机二级等级考试教程第10章 字符串(章节带习题).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第10章字符串10.1用一维字符数组存放字符串10.2使指针指向一个字符串10.3字符串的输入和输出10.4字符串数组10.5用于字符串处理的函数10.6程序举例10.1用一维字符数组存放字符串字符常量:是用单引号括起来的一个字符。例如‘A’‘C’‘t’‘!’‘?’字符串常量:是由双引号括起来的一串字符。例如“CHINA”在内存中占一个字节在内存中占6个字节在内存中的存储形式是:CHINA 在内存中,系统会自动的在字符串的末尾加上一个‘ ’,作为字符串的结束标志,系统只要看到它就认为该字符串到此就结束了
2、。但要注意,该字符串的实际长度还是为5。注意由于变量只能存放一个字符,所以字符串的存放只能存储在数组当中。10.1用一维字符数组存放字符串10.1.1通过赋初值的方式给一维字符数组赋字符串★如下定义的是含有10个整型元素的一维数组,并初始化。inta[10]={2,4,6,8,10};在内存中的存储形式是:24681000000★如下定义的是含有10个元素的一维字符数组,并初始化。charstr[10]={‘s’,’t’,’r’,’i’,’n’,’g’,’!’};在内存中的存储形式是:strIng!
3、 也可以按这种形式进行赋值:charstr[10]={‘s’,’t’,’r’,’i’,’n’,’g’,’!’,‘ ’};在内存中的存储形式是:strIng! 无论用上面哪中方式赋值,字符串中的结束标志总是为第一个。10.1用一维字符数组存放字符串10.1.1通过赋初值的方式给一维字符数组赋字符串也可以用赋初值的方式来定义字符数组的大小,这时定义时一定要写成:charstr[]={‘s’,’t’,’r’,’i’,’n’,’g’,’!’,‘ ’};★该字符串的实际长度为7。★该数组中包含了8个元
4、素,在这种情况下,一定要人为的在后面加一个’ ’。否则该数组中就没有结束标志,就不能称数组中存放的是字符串了。例如:charstr[]={‘s’,’t’,’r’,’i’,’n’,’g’,’!’};该数组中只包含7个元素10.1用一维字符数组存放字符串10.1.1通过赋初值的方式给一维字符数组赋字符串也可以直接用字符串常量给一维字符数组赋初值。例如:charstr[10]={“sting!”};charstr[10]=“sting!”;习惯上均省略花括号注意把一个字符串常量赋值给一个一维字符数组时,数组的元
5、素个数一定要大于字符串的实际长度charstr[6]=“sting!”;由于字符串的实际长度为6,而数组只有6个存储单元,‘ ’将无法存放。如下的定义形式也可以正确进行:charstr[]=“sting!”;数组中包含7个元素(含系统自动加的’ ’)10.1用一维字符数组存放字符串10.1.2在C程序执行过程中给一维字符数组赋字符串在定义时,给一维字符数组赋字符串:charmark[10]=“CProgram”;(合法)charmark[10];mark=“CProgram”;(非法)数组名为地址值,为
6、一个地址常量,不能被赋值。以下的赋值语句也是错误的:charstr1[10]=“computer”,str2[10];str2=str1;/*赋值不合法*//*分别定义两个一维字符数组*/赋值号左边也为数组名10.1用一维字符数组存放字符串10.1.2在C程序执行过程中给一维字符数组赋字符串例如,我们已经定义了一个一维字符数组,如下:charmark[10];我们也可以逐个给数组元素进行赋值,例如:mark[0]=‘C’;mark[1]=‘’;mark[2]=‘P’;mark[3]=‘r’;mark[4]=
7、‘o’;mark[5]=‘g’;mark[6]=‘r’;mark[7]=‘a’;mark[8]=‘m’;mark[9]=‘ ’;也可以在程序运行的过程当中,通过一个循环语句,从键盘上向数组中输入指定的字符。如下:charmark[10];inti;for(i=0;i<9;i++)scanf(“%c”,&mark[i]);mark[i]=‘ ’;/*通过键盘(终端)接收9个字符*/循环结束后,给mark[9]赋予结束标志’ ’。如从第一列输入:CProgram在内存中的存储形式是:CProgra
8、m 10.2使指针指向一个字符串可以在定义字符指针变量的同时,将一个字符串赋值给指针变量。例如:char*ps1=“formone”;如上,是把存放字符串常量的无名存储区的首地址赋给指针变量ps1,使ps1指向字符串的第一个字符f。如下图所示:ps1formone 又如:charstr[]=“formtwo”,*ps2=str;无名存储区在定义指针变量的同时让指针变量指向了str的首地址,即指向了字符串的第一