C++基础<03>—标准库string类型

标准库string类型

string类型支持长度可变的字符串,C++标准库提供了各种相关操作。

#include <string>
using std::string

一、string对象的定义和初始化

         string标准库支持几个构造函数。构造函数是一个特殊的成员函数,定义如何初始化该类型的对象。如下所示:
//①默认构造函数,s1为空串
string s1;		
//②将s2初始化为s1的一个副本
string s2(s1);
//③将s3初始化为一个字符串字面值副本
string s3("value");
//④将s4初始化为字符'c'的n个副本
string s4(n, 'c');

二、string对象的读写

         在C++基础<1>中,我们了解了IO标准库。同样的,也可以用标准输入输出操作符来读写string对象。
注:① 读取并忽略开头所有的空白字符(如空格,换行符,制表符);
         ② 读取字符直至再次遇到空白符,读取终止。

三、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 ,不要把size的返回值赋值给一个int变量。

string关系操作符
①如果两个string对象长度不同,且短的string对象与长的string对象的前面部分相匹配,则短的string对象小于长的string对象。
②如果两个string对象的字符不同,则比较第一个不匹配的字符。

string对象赋值内部实现:必须先把st1占用的相关内存释放掉,然后再分配给st1足够存放st2副本的内存空间,最后把st2中所有字符复制到新分配的内存空间。

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

四、string对象中字符处理

头文件:cctype
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
ispunct(c)			//如果c是标点符号,则为true
isspace(c)			//如果c是空白字符,则为true
isupper(c)			//如果c是大写字母,则为true
isxdigit(c)			//如果c是十六进制数,则为true
tolower(c)			//如果c是大写字母,则返回其小写字母形式,否则直接返回c
toupper(c)			//如果c是小写字母,则返回其大写字母形式,否则直接返回c


PS: 欢迎关注微信公众号:开发者小黑屋,分享优质技术干货。 

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值