




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第C语言与C++中关于字符串使用的比较目录相似处字符串字面值C++标准库string类型
相似处
C++作为C的进阶版,可以调用C的库函数。C++标准库包括了C标准库,C++头文件cctype其实就利用了C的ctype.h中的库函数。在C++中使用C的头文件都会在前面加c,比如C的name.h在C++就是cname。
为了与C兼容,C++有字符串字面值,也就是类似helloworld这种,但是这和string类型不一样,视编译器而定string最后不一定有\0。
字符串字面值
字符串字面值是一串常量字符,采用双引号括起来的零个或者多个字符表示,不可打印字符表示成相对应的转义字符:
HelloWorld//simplestringliteral
//emptystringliteral
\nCC\toptions\t//stringliteralusingnewlinesandtabs
为了兼容C语言,C++所有字符串字面值都由编译器自动在末尾添加一个空字符,和C语言一样:
A//singlequote:characterliteral
A//doublequote:characterstringliteral
表示包含字母A和空字符两个字符的字符串。
表示包含字母A和空字符两个字符的字符串。
也存在宽字符和宽字符串字面值,如:
La
Lawidestringliteral
宽字符串字面值是一串常量宽字符串,同样以宽空字符结束。
两个相邻的仅由空格、制表符或换行符分开的字符串字面值(宽字符串字面值),可连接成一个新字符串字面值,使得多行书写长字符串字面值变得简单。
std::coutamulti-line
stringliteral
usingconcatenation
std::endl;
执行这条语句将会输出:
amulti-linestringliteralusingconcatenation
但如果连接字符串字面值和宽字符串字面值,将会出错:
std::coutamulti-line
Lstringliteral
usingconcatenation
std::endl;
其结果将是未定义的(undefined)。
C++结构比较自由,甚至可以在单词中断行:
std::cou\
tHist\
d::endl;
等价于:
std::coutHistd::endl;
可以用这个特性编写长字符串字面值:
std::coutamulti-line\
stringliteral\
usingabackslash
std::endl;
return0;
使用反斜线符号时这个符号必须是该行的尾字符,不允许后面有任何注释或者空格。
C++标准库string类型
string类型初始化
strings1;//默认构造函数,s1为空串
strings2(s1);//将s2初始化为s1的副本
strings3("value");//将s3初始化为字符串字面值副本
strings4(n,'c');//将s4初始化为字符'c'的n个副本
String对象的读写
一个有用的stringIO操作是getline,getline函数从输入流的下一行开始读取,保存读取的内容到string中,但不包括换行符,只要遇到换行符,哪怕是该行第一个字符,getline也将停止读入并返回。
由于getline返回时丢弃换行符,换行符将不会存储在string对象中。下面给出一个使用getline读取字符串的例子:
intmain()
stringline;
while(getline(cin,line))
coutlineendl;
return0;
String对象的操作
s.empty()//s为空串返回true,否则返回false
s.size()//返回s中字符个数
s[n]//返回s中位置为n的字符,位置从0开始计数
s1+s2//将s1和s2连接成一个新字符串
s1=s2//将s1替换成s2副本
v1==v2//比较v1和v2,相等返回true,否则返回false
!=,,=,,=//字符串比较
从逻辑上讲,size函数应该返回整型,然而事实上返回的是string::size_type类型,为避免溢出,在代码编写时最好用string::size_type。
关系操作符的比较规则和C的strcmp一样不赘述。
和字符串字面值的连接
上述s1+s2连接的是字符串,字符串也是可以和字符串字面值连接的。
由于编译器不同,string类型变量结尾的\0时有时无,但是有一点毫无疑问,两个字符串字面值是不能连接的。
strings1="hello";
strings2="world";
strings3=s1+"hi";
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年1月专职安全生产管理人员综合类C证练习题含参考答案
- 重难点解析人教版八年级上册物理《声现象》定向练习试卷(附答案详解)
- 2025及未来5年中国九抽屉市场调查、数据监测研究报告
- 2025及未来5年中国直流接触器市场调查、数据监测研究报告
- 2025及未来5年中国饮料货架市场调查、数据监测研究报告
- 2025及未来5年中国单杆市场调查、数据监测研究报告
- 2025及未来5年中国荷兰豆市场调查、数据监测研究报告
- 考点解析-人教版八年级《力》专题练习试卷(含答案解析)
- 解析卷人教版八年级上册物理《声现象》定向训练试题(含解析)
- 广安木纹硅钙板施工方案(3篇)
- 2025-2026学年期中测试卷人教版九年级数学上册
- GB/T 16150-2025农药筛析试验方法
- 辽宁2025自考生物医药数据科学生物信息学选择题专练
- 国寿股权投资有限公司笔试题库
- 2025中国人寿养老笔试题库
- 2025年全国保密教育线上培训考试试题库附参考答案
- 建筑施工安全管理制度范本
- 2025公安招聘辅警考试笔试题及答案(完整版)
- 美国建筑文化介绍
- 2025年专升本政治试题真题及答案
- 变压器及配电室建设项目可行性研究报告
评论
0/150
提交评论