C++Primer3.1&3.2标准库类型string知识点梳理

C++Primer3.1&3.2标准库类型string知识点梳理

3.1 命令空间的using声明
1、使用using声明的作用:安全方便地使用命名空间中的名字。
2、具体形式:using namespace::name;
3、作用域操作符的含义:编译器应从运算符左侧的名字所示的作用域中寻找右侧那个名字。
4、使用规则:
(1)每个独立的名字都需要using声明。
(2)最好不要使用using namespace std;,因为有时候会编译错误。
(3)头文件中不应包含using声明。

3.2 标准库类型string
1、string的含义:一种可变长的字符序列。

2、string对象的初始化的多种方式:
(1)string s1;
(2)string s2=s1;
(3)string s3=“hi ya”; //将字符串字面值,除了最后一个空字符,都拷贝到s3中去。
(4)string s4(10,‘c’);
直接初始化:不使用等号,如(4)。
拷贝初始化:使用等号,如(2),(3)。

3、string对象上的操作
string类型在类内已经定义了其对象上的所能执行的操作。
(1)读写已知数量的string对象。
string对象的读写会直接忽略空白,从第一个真正的字符开始读起,直到遇到下一处空白。
(2)读取未知数量的string对象。
使用while(cin>>str);来读取string对象,当读取到文件终止符或非法输入时会停止读取。
(3)使用getline读取一整行
作用:读取一个字符串时,也能读取字符串中的空白符。
形式:getline(cin,str);,当读取到换行符时,停止输入。换行符实际上是被丢掉的,并不存入对象中。

4、string的empty和size函数操作。
(1)、empty函数的作用:判断string对象是否为空并返回一个对应的布尔值。
(2)、 size函数的作用:返回string对象的长度(即string对象中字符的个数)。

5、string::size_type类型
(1)、含义: string::size_type是string类型的配套类型。size函数返回的是一个string::size_type的类型。
(2)、使用方法:通常用auto或decltype来推断变量的类型。如:
auto len=str.size();或decltype(str.size()) len;

6、比较string对象
1、string类定义了几种比较字符串的运算符,如==,!=,>,<等。
2、比较的规则:
(1)对大小写字母敏感。
(2)当两个string对象长度不同时,长度长的字符串大于长度短的字符串。
(3)当两个string对象长度相同时,比较的结果是第一对相异的字母比较的结果。
a、小写字母的字符串大于大写字母的字符串。
b、字母靠后的字符串大于字母靠前的字符串。

7、给string对象赋值
(1)跟给普通变量赋值相同,可以把一个对象的值赋给另外一个对象。

8、两个string对象相加
(1)两个string对象相加是将两个字符串连接在一起组成一个新的字符串,在运算符+号的左侧的字符串作为前半部分,右侧字符串作为后半部分。

9、字面值和string对象相加
(1)含义:标准库允许把字符字面值和字符串字面值转换成string对象。
(2)使用规则:当把string对象和字符串字面值或字符字面值混在同一条的语句中时,运算符+号的两侧至少有一侧是string对象。
(3)注意运算符的优先级顺序。

3.2.3 处理string对象中的字符
1、改变string对象中某个字符的特性的常用函数。
(1)ispunct© //当c是标点符号时为真。
(2)isspace© //当c是空白时为真。
(3)isupper© //当c是大写字母时为真
(4)islower© //当c是小写字母时为真
(5)tolower© //输出小写字母
(6)toupper© //输出大写字母

2、使用基于范围的for语句处理每个字符。
(1)范围for语句的作用:这种语句遍历给定序列中的每个元素并对序列中的每个值执行某种操作。
(2)语法形式:for (定义循环控制变量 :一个序列) {statement;}
(3)通常用auto来定义循环控制变量。

3、使用范围for语句改变字符串中的字符
(1)作用:通过将循环控制变量变成引用类型来改变string对象中的字符的值。
(2)形式:把循环控制变量定义成引用类型,这个变量一次被绑定在序列的每个元素上。如for(auto &c: s);

4、使用下标运算符处理string对象中的单个字符
(1)使用下标运算符 [a]来处理单个字符,接收的输入参数a是string::size_type类型的值,a表示的是要访问的字符的位置,返回值是该字符的引用。
(2)string对象的下标位置从0开始,直到string对象的长度-1(即s.size()-1)结束。
(3)下标的值称作“下标”或“索引”,任何一个表达式的值是整型值都可以作为索引;当某个索引值是带符号类型的值将会自动转换成string::size_type的无符号类型。
(4)要想访问string对象的某个字符,必须要先检查string对象是否是空字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值