7string、const.ppt_第1页
7string、const.ppt_第2页
7string、const.ppt_第3页
7string、const.ppt_第4页
7string、const.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

重庆邮电大学计算机科学与技术学院冯潇fengxiao,string和const,string,C+标准库利用string完成ASCCII码和宽字符集的字符串处理string是C+封装的字符串类,处理ASCII码构成的字符串wstring是C+封装的字符串类,完成宽字符集(如Unicode字符集)的处理采用char*和constchar*表示的字符串,通常称为C-string(C风格的字符串)C+利用模板类basic_string来实现string,具体地:typedefbasic_stringstring;,常见的字符串定义语法,strings1;/初始化空字符串s1strings2(nico);/用nico初始化s2strings3(nico,5);/用nico0初始化s3strings4(5,0);/用0初始化5个元素常见的错误定义方法:string不提供int或char自动转换为字符串的功能stringerror1=c;/错误stringerror2(U);/错误stringerror3=22;/错误stringerror4=NULL;/错误,string的输入,不带空格的字符串输入stringstr;cinstr;coutstr;带空格的字符串输入stringstr;getline(cin,str);coutstrmydir.temphello.=hello.tempoops.temp=oops.xxxend.dat=end.temp,VC6.0下设置命令行参数(ALT+F7),分析,从命令行接收当前参数判断该参数中否包含扩展名如果没有,直接在原参数后加“temp”和“.temp”即可如有有,再判断原扩展名是否为“temp”,是,则替换为“xxx”,否,则替换为“temp”,需要用到的成员函数,string:find(charc)在串中查找字符c,若找到,返回其下标,失败,则返回string:npos该函数返回值是string:size_type类型string:replace(size_typeidx,size_typelen,constchar*cstr)从串中下标为idx处,将长度为len的子串替换为cstrstring:substr(size_typeidx,size_typelen)返回串中下标为idx处,长度为len的子串若缺少参数len,则返回从下标idx开始的所有字符,string:npos,string类中npos定义如下staticconstsize_tnpos=-1;代表了size_t类型(unsignedint)的最大值,232-1string:npos有如下用法:用作实参,其形参n代表元素个数,则该值表示元素个数为“asmanyaspossible”用作实参,其形参pos代表元素位置,则该值表示剩余的所有元素若作为函数返回值,即表示函数结果为失败0在string中和其他字符同等地位,没有特殊含义,#include#includeusingnamespacestd;intmain(intargc,char*argv)stringfilename,basename,extname,tempname;/定义4个空串conststringsuffix(tmp);inti;for(i=1;iargc;i+)filename=argvi;string:size_typeidx=filename.find(.);if(idx=string:npos)/搜索失败tempname=filename+.+suffix;,elsebasename=filename.substr(0,idx);extname=filename.substr(idx+1);if(extname=suffix)tempname=basename+.+xxx;elseif(extname.empty()tempname=filename+suffix;elsetempname=filename;tempname.replace(idx+1,string:npos,suffix);couttempnameendl;return0;,尽可能使用const-effectiveC+,使用const的好处在于它允许指定一种语意上的约束某种对象不能被修改编译器具体来实施这种约束。通过const,你可以通知编译器和其他程序员某个值要保持不变。只要是这种情况,你就要明确地使用const,因为这样做就可以借助编译器的帮助确保这种约束不被破坏。,const和指针,指向const的指针,const指针,#includevoidcopy_string(char*from,char*to)for(;*from!=0;from+,to+)*to=*from;*to=0;intmain()char*a=Iamateacher.;char*b=Youareastudent.;printf(nstringa=%s,a);printf(nstringb=%s,b);copy_string(a,b);printf(nresultstringa=%s,a);printf(nresultstringb=%s,b);return0;,找错误,如何改?,#includevoidcopy_string(char*from,char*to)for(;*from!=0;from+,to+)*to=*from;*to=0;intmain()chara=Iamateacher.;charb=Youareastudent.;printf(nstringa=%s,a);printf(nstringb=%s,b);copy_string(a,b);printf(nresultstringa=%s,a);printf(nresultstringb=%s,b);return0;,为什么?,建立人口信息相关档案,第六次全国人口普查要求在全国范围内搜集人口资料,收集信息如下:身份证号、姓名、性别、年龄、常住地址编程实现人口信息的相关登记工作。分析用string完成字符串处理其中居民的身份证号码一旦获得,永远无法更改,classCitizenpublic:Citizen();Citizen(conststring,Citizen:Citizen(conststring/使用构造函数初始化表更有效率,voidCitizen:print()constcout-endl;coutsetw(15)left身份证号码:NumberOfIDCardendl;coutsetw(15)left姓名:nameendl;coutsetw(15)left性别:genderendl;coutsetw(15)left年龄:ageendl;coutsetw(15)left常住地址:addressendl;,intmain()CitizencNico,女,50,重庆市南岸区崇文路附1号);c.print();return0;,常对象和常成员,常对象指数据成员值在对象的整个生命周期中不能被改变的对象,其声明格式为:const=;const(初始化值);从定义可以看出,常对象的数据成员是常数据成员常对象的初始化只能通过初始化表完成常对象不能调用普通成员函数,常成员,类的一个数据成员若被声明为常成员,则任何函数均不能修改其值类的一个成员函数若被声明为常成员,则该函数只能访问该类的数据成员,不能改写数据成员的值,小节const用法,常对象的数据成员均是

温馨提示

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

评论

0/150

提交评论