高中信息竞赛字符数组与字符串ppt课件_第1页
高中信息竞赛字符数组与字符串ppt课件_第2页
高中信息竞赛字符数组与字符串ppt课件_第3页
高中信息竞赛字符数组与字符串ppt课件_第4页
高中信息竞赛字符数组与字符串ppt课件_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、字符数组字符数组用来存放字符数据的数组是字符数组,字符数组中用来存放字符数据的数组是字符数组,字符数组中的一个元素存放一个字符。的一个元素存放一个字符。一、字符数组的定义一、字符数组的定义char 数组名数组名常量表达式常量表达式;char c4; /*每个元素占一个字节每个元素占一个字节 */c0=I; c1=m; c2=_;类型类型数组名数组名数组大小数组大小二、字符数组的初始化二、字符数组的初始化与数值数组的初始化一样,取其相应字符的与数值数组的初始化一样,取其相应字符的ASCII值。值。char c10=I, , a, m, , a, , b, o, y; 随机随机yob a ma I

2、cc0c9假设字符个数大于数组长度,做错误处置;假设数值个数假设字符个数大于数组长度,做错误处置;假设数值个数小于数组长度,后面的字节全部为小于数组长度,后面的字节全部为0。假设省略数组长度,那么字符数即为数组长度。假设省略数组长度,那么字符数即为数组长度。char c =I, , a, m, , a, , g, i, r,l; 同理,也可定义和初始化一个二维或多维的字符数组。分同理,也可定义和初始化一个二维或多维的字符数组。分层或省略最后一维。层或省略最后一维。char st1 =65, 66, 68;ABD三、字符数组的援用三、字符数组的援用int main( ) char c10=I,

3、, a, m, , a, , b, o, y; int i; for (i=0; i10; i+) coutci; cout“n;定义定义输出输出四、字符串和字符串终了标志四、字符串和字符串终了标志C+言语将字符串作为字符数组来处置。言语将字符串作为字符数组来处置。字符串常量:字符串常量:“CHINA,在机内被处置成一个,在机内被处置成一个无名的字符型一维数组。无名的字符型一维数组。CHINA 0C+言语中商定用言语中商定用0作为字符串的终了标志,它作为字符串的终了标志,它占内存空间,但不计入串长度。有了终了标志占内存空间,但不计入串长度。有了终了标志0后,程序往往根据它判别字符串能否终了,而

4、不后,程序往往根据它判别字符串能否终了,而不是根据定义时设定的长度。是根据定义时设定的长度。字符串与字符数组的区别:字符串与字符数组的区别:char a =C,H,I,N,A;char c =“CHINA; 随机随机随机随机ANIHC长度占长度占5个字节个字节随机随机0ANIHC长度占长度占6个字节个字节字符数组字符数组字符串字符串可以用字符串的方式为字符数组赋初值可以用字符串的方式为字符数组赋初值char c =“I am a boy; /*长度长度11字节,以字节,以0结尾结尾 */char a =I, , a, m, , a, , b, o, y; /* 长度长度10字节字节 */假设数

5、组定义的长度大于字符串的长度,后面均为假设数组定义的长度大于字符串的长度,后面均为0。char c10=“CHINA; 00000ANIHCc0的的ASCII为为0,而,而 (空格空格)的的ASCII为为32。char w =T, u, r, b, o, 0;Turbo 0char w =“Turbo0;Turbo 0char w =“Turbo0;Turbo 0char w =Turbo0;非法非法char a25=“abcd, “ABCD;abcd0ABCD0在语句中字符数组不能用赋值语句整体赋值。在语句中字符数组不能用赋值语句整体赋值。char str12;str=“The String

6、;str为字符数组在内存中存储的地址,一经定义,便成为常为字符数组在内存中存储的地址,一经定义,便成为常量,不可再赋值。量,不可再赋值。char str12=“The String;非法,在语句中赋值非法,在语句中赋值定义数组,开辟空定义数组,开辟空间时赋初值间时赋初值字符数组的输入输出字符数组的输入输出 逐个字符的输入输出。这种输入输出的方法,通常是运逐个字符的输入输出。这种输入输出的方法,通常是运用循环语句来实现的。如:用循环语句来实现的。如:char str10;cout“输入十个字符:输入十个字符:;for(int i=0;istri;/A .A行将输入的十个字符依次送给数组行将输入的

7、十个字符依次送给数组str中的各个元素。中的各个元素。定义定义赋值赋值把字符数组作为字符串输入输出。对于一维字符把字符数组作为字符串输入输出。对于一维字符数组的输入,在数组的输入,在cincin中仅给出数组名;输出时,在中仅给出数组名;输出时,在coutcout中也只给出数组名。中也只给出数组名。int main (void )char s150,s260;cout s1;cin s2;cout “n s1 = “ s1;cout “n s2 = “ s2 “n; 输入:输入:abcdstringcin只能输入一个单只能输入一个单词,不能输入一行词,不能输入一行单词。单词。数组名数组名数组名数

8、组名输出到输出到0为止为止当要把输入的一行作为一个字符串送到字符数组当要把输入的一行作为一个字符串送到字符数组中时,那么要运用函数中时,那么要运用函数cin.getline( )。这个函数的。这个函数的第一个参数为字符数组名,第二个参数为允许输第一个参数为字符数组名,第二个参数为允许输入的最大字符个数。入的最大字符个数。 cin.getline(数组名数组名, 数组空间数数组空间数);char s180;.cin.getline(s1, 80);首先开辟空间首先开辟空间参数是数组名参数是数组名int main (void ) char s381; cout输入一行字符串输入一行字符串:; ci

9、n.getline(s3,80);/A couts3=s3=a&si=A&si=Z)&word=0) word=1;num+; else if(si= ) word=0; i+; coutnum=numendl;阐明前一字符非字母阐明前一字符非字母改动形状,防止继续对改动形状,防止继续对下一字母计数下一字母计数改动形状,碰到下一改动形状,碰到下一个字母时开场计数个字母时开场计数六、字符数组处置函数六、字符数组处置函数C中没有对字符串变量进展赋值、合并、比较中没有对字符串变量进展赋值、合并、比较的运算符,但提供了许多字符串处置函数,用户可的运算符,但提供了许多字符串处置函

10、数,用户可以调用以调用 #include 一切字符串处置函数的实参都是字符数组名一切字符串处置函数的实参都是字符数组名1、合并两个字符串的函数、合并两个字符串的函数 strcat (str1, str2)char str120=“I am a ;char str2 =“boy;strcat (str1, str2);Ia ma0 0b o y 0Iamaboy 0将第二个字符串将第二个字符串 str2 接到第一个字符串接到第一个字符串 str1 后。后。留意:第一个字符串要有足够的空间。留意:第一个字符串要有足够的空间。空间足够大空间足够大2、复制两个字符串的函数、复制两个字符串的函数 str

11、cpy (str1, str2)char str120=“I am a ;char str2 =“boy;strcpy (str1, str2);00amaIstr10yobstr200a0yobstr1strcpy ( str1, “CHINA);0ANIHCstr1strcpy (“CHINA, str1);str1=str2; str1=“CHINA; 字符串正确赋值字符串正确赋值均为非法均为非法3、比较两个字符串的函数、比较两个字符串的函数 strcmp (str1, str2)此函数用来比较此函数用来比较str1和和str2中字符串的内容。函数对字符串中字符串的内容。函数对字符串中的

12、中的ASCII字符逐个两两比较,直到遇到不同字符或字符逐个两两比较,直到遇到不同字符或0为为止。函数值由两个对应字符相减而得。止。函数值由两个对应字符相减而得。该函数具有前往值,前往值是两字符串对应的第一个不同该函数具有前往值,前往值是两字符串对应的第一个不同的的ASCII码的差值。码的差值。假设两个字符串完全一样,函数值为假设两个字符串完全一样,函数值为0。 if ( strcmp (str1, str2)=0) . 用来判别两字符用来判别两字符串能否相等串能否相等char str120=“CHINA;char str2 =“CHINB;cout strcmp (str1, str2)end

13、l;输出:输出:-1char str120=“CHINA;char str2 =“AHINB;coutstrcmp (str1, str2)endl;输出:输出:2if (str1= =str2) cout“yesn;if (strcmp (str1,str2)= =0) cout“yesn;非法非法正确正确4、求字符串长度的函数、求字符串长度的函数 strlen (str1)长度不包括长度不包括0。函数参数为数组名,前往值为数组首字母到函数参数为数组名,前往值为数组首字母到0的长度。并的长度。并非数组在内存中空间的大小。非数组在内存中空间的大小。char s80;strcpy(s, “abc

14、d);coutstrlen(s)endl;输出:输出: 400a0yobstr1输出:输出: 3coutstrlen(str1)endl;coutsiziof(s)endl;输出:输出: 80char str120=“CHINA;coutstrlen (str1)endl;输出:输出:5char sp =“x69082;coutstrlen (sp)endl;输出:输出:6char sp =“tv0willn;coutstrlen (sp)endl;输出:输出:3char str120=“a book;coutstrlen (str1)endl;输出:输出:15、 strlwr (str1)将

15、将str1中的大写字母转换成小写字母。中的大写字母转换成小写字母。6、 strupr (str1)将将str1中的小写字母转换成大写字母。中的小写字母转换成大写字母。7、函数、函数strncmp(字符串字符串1,字符串字符串2 , maxlen)函数原型为函数原型为: int strncmp(char str1 , char str2 ,int m)第三个参数为正整数,它限定了至多比较的字符个数第三个参数为正整数,它限定了至多比较的字符个数假设字符串假设字符串1或字符串或字符串2的长度小于的长度小于maxlen的值时,函数的值时,函数的功能与的功能与strcmp( )一样。一样。当二个字符串的

16、长度均大于当二个字符串的长度均大于maxlen的值时,的值时,maxlen为至为至多要比较的字符个数。多要比较的字符个数。coutstrncmp(“China,“Chifjsl;kf,3)n;输出:输出:0第三个参数为正整数,它限定了至多拷贝的字符个数第三个参数为正整数,它限定了至多拷贝的字符个数假设字符串假设字符串2的长度小于的长度小于maxlen的值时,函数的功能与的值时,函数的功能与strcpy( )一样。一样。当字符串当字符串2的长度大于的长度大于maxlen的值时,的值时,maxlen为至多要拷为至多要拷贝的字符个数。贝的字符个数。8、函数、函数strncpy(字符数组名字符数组名1, 字符串字符串2, maxlen)函数原型

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论