C++ Primer 第三章 标准库string类型

标准库string类型:

string类型支持长度可变的字符串.

#include<string>

using std::string;

1.string对象的定义和初始化

string s1;   //默认构造函数,s1为空串

string s2(s1);   //将s2初始化为s1的一个副本

string s3("value");   //将s3初始化为一个字符串字面值副本

string   s4(n,'c');   //将s4初始化为字符‘c’的n个副本

2.string对象的读写

string类型的输入操作符: 读取并忽略开头所有的空白字符(如空格、换行符、制表符);  读取字符直至再次遇到空白字符,读取终止。

2.1读入未知数目的string对象:

string  word;

while(cin>>word)

cout<<word<<endl;

2.2用getline读取整行文本:

getline接收两个参数,一个输入流对象和一个string对象。 getline函数从输入流的下一行读取,并保存读取的内容到string中,但不包括换行符.

由于getline函数返回时丢弃换行符,换行符并不会存储在string对象中。

3.string 对象的操作:

s.empty()    若s为空串,则返回true,否则返回false

s.size()        返回s中字符的个数

s[n]              返回s中位置为n的字符,位置从0开始计数

s1=s2         将s1内容替换为s2的副本

s1==s2      比较s1和s2的内容,相等则返回true,否则返回false

!=   <  <=    >     >=        保持这些操作符的惯有含义

3.1  string 的size和empty操作

判断string对象是否为空 :if(str.size()==0)    或者   if(str.empty())

3.2 string::size_type类型

size操作返回的是string::size_type类型的值。

为了使用由string类型定义的size_type类型,必须加上作用域操作符来说明所使用的size_type类型是有string类定义的。

任何存储string的size操作结果的变量必须为string::size_type类型,注意不要把size的返回值赋给一个int变量。   

string::size_type是unsigned型

3.3 string关系操作符

string类定义了关系操作符来比较两个string值的大小。

string对象比较操作是区分大小写的

3.4 +操作符

当进行string对象和字符串字面值混合连接操作时,+操作符的左右操作数必须至少有一个是string类型的,不能将两个字符串字面值相加。

3.5从string对象获取字符

s[s.size()-1]表示s的最后一个字符

4.string对象中字符的处理

对string对象中的单个字符进行处理,例如,通常需要知道某个特殊字符是否为空白字符、字母或数字。这些函数在cctype头文件中定义,实际利用了C标准库的ctype.h头文件中的函数。

isalnum(c)     如果c是字母或数字,则为true

isalpha(c)       如果c是字母,则为true

iscntrl(c)         如果c是控制字符,则为true

isdigit(c)         如果c是数字,则为true

isgraph(c)  如果c不是空格但可打印,则为true

islower(c)    如果c是小写字母,则为true

isprint(c) 如果c是可打印的字符,则为true

ispunt(c)  如果c是标点符号,则为true

isspace(c)  如果c是空白字符,则为true

isupper(c)  如果c是大写字母,则为true

isxdigit(c)  如果c是十六进制数,则为true

tolower(c)  如果c是大写字母,则返回其小写字母形式,否则直接返回c

toupper(c)  如果c是小写字母,则返回其大写字母形式,否则直接返回c



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值