33192-00课件cpp07_第1页
33192-00课件cpp07_第2页
33192-00课件cpp07_第3页
33192-00课件cpp07_第4页
33192-00课件cpp07_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

,课件制作:C/C+教材编写组哈尔滨理工大学计算中心,基于计算思维,2,第1章初识C/C+程序设计语言,第2章数据类型、运算符与表达式,第3章顺序结构程序设计,第5章循环结构程序设计,第6章数组,第7章字符串,第8章指针,总复习,第4章选择结构程序设计,课程概述,第9章函数,第11章类与对象自定义数据类型,第12章继承与多态自定义数据类型,第13章C+输入/输出流类库,第14章异常处理,第15章图形界面编程简介,第10章自定义数据类型,第7章字符串,3,字符串,第7章,掌握字符数组与字符变量的区别掌握字符数组的定义和应用掌握字符串与字符数组的区别掌握字符串的应用和处理函数掌握String类的定义与应用,4,7.1案例剖析,实例:字符数组的输入、存储和输出,问题的提出输入一个字符串“Iamaboy.”存储在字符数组中,再逐一输出字符数组的每个字符。,5,7.1案例剖析,算法及程序设计分析确定存储字符串的数据类型采用字符数组;循环变量i,字符数组str1从键盘输入字符串存储到str1重复输出str1i直到str1i为0。,charstr180,cin.getline(str1,80);,6,7.1案例剖析,源程序及说明#includeusingnamespacestd;intmain()inti;charstr180;cout请输入一串字符:endl;cin.getline(str1,80);cout字符在数组中的存储形式为:endl;for(i=0;str1i!=0;i+)coutstr1i=str1iendl;return0;,输入字符串到str1,输出str1i元素,7,7.2用字符数组存储和处理字符串,字符数组的定义及初始化,字符数组的定义char数组名整型常量表达式;char数组名整型常量表达式1整型常量表达式2;其中整型常量表达式的值为字符数组的存储空间长度。例如:charstr180;/定义一个包含80个字符的一维字符数组str1charstr234;/定义可存放3个长度为4的二维字符数组str2,8,7.2用字符数组存储和处理字符串,字符数组的定义及初始化,字符数组的初始化用字符常量对字符数组的每个元素的数值初始化例如:charcn6=H,a,r,b,i,n;使用字符串也可以对字符数组进行初始化,例如:charcn7=Harbin;,当用字符串初始化字符数组时,数组字符数组的长度(元素个数)应该比实际存储的字符串长度要大,至少要大一个字节保存0。,9,例7.1:分别用单字符和字符串初始化字符数组,算法分析及程序设计定义字符数组str1采用单一字符常量初始化;定义字符数组str2用字符串初始化;分别用cout输出两个字符串。,7.2用字符数组存储和处理字符串,字符数组的定义及初始化,10,字符数组初始化,源程序7.1#includeusingnamespacestd;intmain()charstr1=H,a,r,b,i,n,0;charstr2=Beijing;coutstr1endl;coutstr2endl;return0;,用单字符初始化字符数组,7.2用字符数组存储和处理字符串,用字符串初始化字符数组,11,例7.2:所有小写英文字母改为大写英文字母。,算法分析及程序设计定义字符数组str1用字符串常量初始化;从str10开始循环验证,当str1i不为0时,如果str1i是小写字母,则将其转换为大写字母;即str1i-a+A,或str1i-32;循环结束后输出str1并换行回车。,7.2用字符数组存储和处理字符串,字符数组元素的引用,12,在表达式中通过数组下标引用字符数组元素例7.2#includeusingnamespacestd;intmain()inti;charstr1=Harbin;for(i=0;str1i!=0;i+)if(a=str1i,通过循环逐一引用数组元素,7.2用字符数组存储和处理字符串,判断str1i是否小写,字符数组元素的引用,用数组首地址输出字符串,13,7.2用字符数组存储和处理字符串,字符数组的输入/输出,整体输出字符数组一般形式为:cout字符数组名;例如:cout字符数组名;例如:cinstr1;,14,#includeusingnamespacestd;intmain()inti;charc380;for(i=0;ici;for(i=0;i3;i+)coutciendl;coutendl;return0;,7.2用字符数组存储和处理字符串,输入字符串存储在第i行,输出第i行的字符串,字符数组的输入/输出,例7.3:二维字符数组输入和输出,15,7.2用字符数组存储和处理字符串,字符数组的输入/输出,使用输入流的成员函数cin.getline()输入由于cin在输入字符串时,如果遇到空格、制表符或者回车将会结束当前输入语句。使输入的信息不能全部被存储在数组中。如果要将含有空格和制表符的字符串输入并存储在字符数组中,需要使用cin.getline()成员函数来完成功能。一般形式为:cin.getline(字符数组,字符数组长度,结束符);该函数的功能是将指定长度的字符串,或回车符和结束符之前的输入信息存储在字符数组中。例如:cin.getline(str1,80,#);,16,7.2用字符数组存储和处理字符串,常用字符串处理函数,strlen字符串长度函数函数格式:strlen(字符数组)函数功能:计算字符串长度。返回值为字符串的实际长度,不包含结尾的0。例如:charstr10=harbin;inta;a=strlen(str);coutaendl;输出结果:6。,17,7.2用字符数组存储和处理字符串,常用字符串处理函数,strcmp字符串比较函数函数格式:strcmp(字符数组1,字符数组2)函数功能:比较字符串ASCII码大小比较规则:如果相等,返回值为0;如果字符串1的码值大于字符串2的码值,则返回一个正数,如果字符串1的码值小于字符串2的码值,则返回一个负数。例如:ints;charstr110=China;charstr210=Chinese;s=strcmp(str1,str2);coutsendl;输出运行结果为-1,即str1的ASCII码值小于str2的ASCII码值。,18,7.2用字符数组存储和处理字符串,常用字符串处理函数,strcat字符串连接函数函数格式:strcat(字符数组1,字符数组2)函数功能:把字符串2连接到字符数组1的末尾。字符数组1要有足够的长度容纳字符数组2的字符串。例如:charstr120=China;charstr210=Harbin;strcat(str1,str2);coutstr1endl;输出结果:ChinaHarbin,19,7.2用字符数组存储和处理字符串,常用字符串处理函数,strcpy字符串复制函数函数格式:strcpy(字符数组1,字符数组2)函数功能:把字符串2复制到字符数组1中。例如:charstr120=China!;charstr210=Harbin;strcat(str1,str2);coutstr1str1;cinstr2;if(strcmp(str1,str2)!=0)if(strlen(str1)strlen(str2)strcat(str1,str2);elsestrcat(str2,str1);coutstr1endl;coutstr2endl;return0;,7.2用字符数组存储和处理字符串,如果两个字符串不相等,如果str2字符串比str1长,常用字符串处理函数,str2连接到str1后面,str1连接到str2后面,例7.4:输入两个字符串,如果不相同,则将长的字符串接在短的字符串后面,再分别输出两个字符串。,21,7.3用string类存储和处理字符串,string类定义对象,定义string对象的格式是:string对象名;例如:stringstr1;也可以在定义对象时初始化例如:stringstr1=abc;,22,7.3用string类存储和处理字符串,string类的常用运算符和函数,=字符串赋值运算符格式:字符串对象=字符串表达式运算符功能:将字符串表达式的值的赋值给字符串对象。例如:str2=str1;+字符串连接运算符格式:字符串表达式+字符串表达式运算符功能:返回两个字符串表达式的连接结果。例如:str2=str1+abc;,23,7.3用string类存储和处理字符串,string类的常用运算符和函数,append字符串追加函数格式:字符串对象.append(字符串表达式)功能:将字符串表达式内容连接到当前字符串对象尾部。例如:str1.append(“abc”);length字符串长度函数格式:字符串对象.length()功能:返回当前字符串对象内容长度。例如:n=str1.length();,24,7.3用string类存储和处理字符串,string类的常用运算符和函数,empty空字符串判断函数格式:字符串对象.empty()功能:返回当前字符串对象是否为空。例如:n=str1.empty();replace字符串替换函数格式:字符串对象.replace(起始位置,替换长度,替换内容)功能:替换字符串的部分内容。例如:str1.replace(3,2,good);,25,7.3用string类存储和处理字符串,string类的常用运算符和函数,find字符串包含函数格式:字符串对象.find(字符串表达式)功能:若字串对象含表达式返回起始位置,否则返回-1。例如:n=str1.find(good);compare字符串比较函数格式:字符串对象.compare(字符串表达式)功能:相等则返回0,若字符串对象大于字符串表达式则返回1,若字符串对象小于字符串表达式返回-1。例如:n=pare(abc);,26,源程序7.5#include#includeusingnamespacestd;intmain()strings;intf,c;s=Harbin;couts=sendl;s=s+;cout+=sendl;s=s+China;cout+China=sendl;s.append(150001);,7.3用string类存储和处理字符串,常用字符串处理函数,运算符连接字符常量,运算符连接字符串,append连接字符串,27,cout.append(150001)=sendl;couts.empty()=s.empty()endl;couts.length()=s.length()endl;s.replace(6,1,Heilongjiang);couts.replace(6,1,Heilongjiang)=sendl;f=s.find(Hei);coutf=s.find(Hei)=fendl;c=pare(Hainan);coutpare(Hainan)=cendl;couts=sselect;cin.sync();,清空缓冲区,32,7.4综合案例:学生成绩管理,源程序,switch(select)case0:cout程序结束。endl;exit(0);case1:for(i=0;in;i+)cout“请输入”i+1“号学生的姓名和成绩用空格分隔:endl;cin.getline(stunamei,80);j=0;,结束程序运行,输入学生的姓名和成绩,33,7.4综合案例:学生成绩管理,源程序,while(stunameij!=)j+;stunameij=0;scorei=0;j+;while(stunameij!=0)scorei=scorei*10+stunameij-0;j+;coutstunameiscorei;coutendl;break;,34,7.4综合案例:学生成绩管理,源程序,case2:cout显示全部学生的成绩:endl;for(i=0;in;i+)switch(scorei/10)case10:case9:strcpy(gradei,优秀);break;case8:strcpy(gradei,良好);break;,显示学生的成绩,35,7.4综合案例:学生成绩管理,源程序,case7:strcpy(gradei,中);break;case6:strcpy(

温馨提示

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

最新文档

评论

0/150

提交评论