标准库string类型

与其他标准库类型一样,用户程序要使用string类型对象,必须包含相关头文件。

 

1.string对象初始化和定义

                                                               string常用的构造函数

 

这里需要注意string类型与字符串字面值不是同一种类型。

2.string对象的读写

 

从标准输入读取string,并将其读入的存储在s中。这里我需要注意两点

1读取并忽略开头所有的空白字符串(如空格,换行符,制表符)

2读取字符直至再次遇到空白符,读取终止

2.1 getline()

getline()接受两个参数:一个输入流对象,一个string对象。Getline()从输入流的下一行读取,并将读取的这一行存入提供的string对象。

注意:读取这一行的末尾的换行符(\n)将不会存入string对象,同时和cin不一样的是,getline()不会忽略开头的换行符(\n)。只要getline()遇到换行符,getline就会停止读入并返回。若开头就是换行符(\n),则读入的就是一个空string。例子如下:

 

3.string对象的操作

 

上面表格摘自《C++Primer》,他是string的一些常用操作。

3.1 string::size_type

 string类型和许多其他库都定义了一些配套类型。通过配套类型,库类型的使用就能与机器无关。size_type就是配套类型之一

 在没过看过《C++Primer》之前,对于上图表中的函数size(),很多人都会认为他返回的应该是整型数值(int)。但是实际上,size()操作返回的是string::size_type类型的值。它被定义为与unsigned类型(unsigned int 或者unsigned long)具有相同的意义。

3.2 关系操作符(<,<=,>,>=,!=)

 string类型定义了几种关系操作符用来比较两个string值的大小(string对象比较操作区分大小写)

  关系操作符(<,<=,>,>=,!=)比较大小时采用了和字典排序相同的策略。

1如果两个 string 对象长度不同,且短的 string 对象与长的 string 对象的前面部分相匹配,则短的string 对象小于长的 string 对象。

2如果string对象的字符不同,则比较第一个不匹配的字符。如下图

 

word2的长度大于word1word3长度大于word1word2

3.3 string对象连接

2个string对象连接其实是通过加法实现的。如下例:

 

3.4和字符串字面值的连接(也是使用”+”)

当进行string对象和字符串字面值混合操作时,+操作符的左右操作数必须至少有一个string类型的。如下图:

 

3.5 从string对象获取字符

string 类型通过下标操作符([ ])来访问 string 对象中的单个字符。下标操作符需要取一个 size_type 类型的值,来标明要访问字符的位置。

 

3.6 string对象中字符的处理

 

当要使用上述函数时,要将cctype纳入头文件中。这些函数不用死记硬背。只要知道就行,用的时候可以翻书再查。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值