- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
string類型的应用
string类型支持长度可变的字符串,C++标准库负责管理存储字符的相关内存,以及提供各种有用的操作。标准库string类型的目的就是满足对字符串的一般应用。
与其它的标准库类型一样,用户程序要使用string类型对象,必须包含相关头文件。如果程序员提供合适的using声明,那么编写出来的程序将会变得简短一些:
#include string
using std::string;
3.2.1? 定义和初始化String对象
string标准库支持几个构造函数(2.2.3节)。构造函数是一个特殊成员函数,定义如何初始化该类型的对象。表3-1列出了几个string类型常用的构造函数。当没有明确指定对象初始代式时,系统将使用默认构造函数(2.3.4节)。
表3-1? 几种初始化String对象的方式
string s1; 默认构造函数,s1为空串 string s2(s1); 将s2初始化为s1的一个副本 string s3(value); 将s3初始化为一个字符串字面值副本 string s4(n, c); 将s4初始化为字符c的n个副本 ?
警告:标准库string类型和字符串字面值????????????????????????????????????????????
因为历史原因以及为了与C语言兼容,字符串字面值与标准库string类型不是同一种类型。这一点很容易引起混乱,编程时一定要注意区分字符串字面值和string数据类型的使用,这很重要。
习题???????????????????????????????????????????????????????????
习题3.2? 什么是默认构造函数?
习题3.3 ?列举出三种初始化String对象的方法。
习题3.4 ?s和s2的值分别是什么?
?? string s;
?? int main() {
?????? string s2;
?? }
3.2.2? String的读写
我们已在第1章学习了用iostream标准库来读写内置类型的值,如int,double等。同样地,也可以用iostream和string标准库,使用标准输入输出操作符来读写string对象:
// Note: #include and using declarations must be added to compile this code
int main()
{
??? string s;????????? ?? // empty string
??? cin s;????????? ?? // read whitespace-separated string into s
??? cout s endl;? // write s to the output
??? return 0;
}
以上程序首先定义命名为s的字符串,第二行代码:
cin s;??????? // read whitespace-separated string into s
从标准输入读取string,并将读入的串存储在s中。string类型的输入操作符:
??? 读取并忽略开头所有的空白字符(如空格,换行符,制表符)。
??? 读取字符直至再次遇到空白字符,读取终止。
因此,如果输入到程序的是“?? Hello World! ??”(注意到开头和结尾的空格),则屏幕上将输出“Hello”,而不含任何空格。
输入和输出操作的行为与内置类型操作符基本类似。尤其是,这些操作符返回左操作数作为运算结果。因此,我们可以把多个读操作或多个写操作放在一起:
string s1, s2;
cin s1 s2; // read first input into s1, second into s2
cout s1 s2 endl; // write both strings
如果给定和上一个程序同样的输入,则输出的结果将是:
HelloWorld!
对于上例,编译时必须加上#include来标示iostream和string标准库,以及给出用到的所有标准库中的名字(如string,cin,cout,endl)的using声明。
从本例开始的程序均假设程序中所有必须的#include和using声明已给出。
1. 读入未知数目的string对象
和内置类型的输入操作符一样,string的输入操作符也会返回所读的数据流。因此,可以把输入操作作为判断条件,这与我们在1.4.4节读取整型数据的程序做法是一样的。下面的程序将从标准输入读取一组string对象,然后在标准输出上逐行输出:
int main()
{
??? string word;
??? // read until end-of-file, w
您可能关注的文档
- SQLSERVER2005的安裝和设置.doc
- SQLServer2008安裝教程图解(佳佳作品).doc
- SQLserver實用教程第三版试题有及答案.doc
- SQLSERVER2008安裝的时候提示“该实例名称已在使用”解决办法.doc
- SQLserver數据库期末考试试题及答案.doc
- Sqlserver數据库课程设计图书馆管理系统.doc
- sqlserver組无项目的解决方法.doc
- SQL_Server_2000的安裝与完全卸载.doc
- Sql_Server_2005_圖解安装全过程详解及常见问题解决方法.doc
- SQL_Server_2008基礎教程第三版2.docx
- 社会问题引导下的高中化学课程设计教学研究课题报告.docx
- 社会问题对学生全面发展的影响教学研究课题报告.docx
- 小学科学课程与生活实际结合研究教学研究结题报告教学研究课题报告.docx
- 小学数学的跨学科融合教学研究教学研究课题报告.docx
- 高中生职业发展与社会需求吻合度的研究教学研究课题报告.docx
- 基于实际问题的高中数学实践教学研究教学研究课题报告.docx
- 同伴评价在中学教育中的应用探索教学研究论文教学研究课题报告.docx
- 初中生社团活动的影响力分析教学研究课题报告.docx
- 校园食品供应商食品安全合规督导考核教学研究课题报告.docx
- 初中科学实验教学中的问题解决能力培养教学研究课题报告.docx
最近下载
- 2024年中考语文二轮复习:名家散文阅读(汪曾祺)练习题汇编(含答案解析).docx
- 职业资格认证 三.鉴定细目表 中式烹调师(中级)理论知识鉴定要素细目表.doc
- 来访人员登记表(模板).pdf VIP
- 中小型企业安全生产事故应急救援预案范文.doc
- 《中华民族一家亲》第一课时 教案.doc
- 【智慧树】【知到】大学生劳动就业法律问题解读(2024必威体育精装版版) 章节测试答案.docx VIP
- 酒厂危险源辨识及风险分级管控清单范本参考模板范本.pdf VIP
- 人教版四年级数学上册《田忌赛马》教案及教学反思.docx VIP
- 创业模拟实训培训.pptx
- 2024《城市居民参与生活垃圾分类的问题研究—以北京市A社区为例》论文答辩稿1700字.docx VIP
文档评论(0)