学习C++ primer 之路 - ( 第十六章 之String类)

本文详细介绍了C++标准库中的String类,包括其构造函数、运算符重载及常用方法。探讨了String类如何简化字符串操作,如初始化、拼接、比较等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、String类说明

String类是位于头文件string或者string.h中,String极大的简化了C风格字符串的操作与声明,里面封装集合了多种多样的操作字符串的接口,里面还有许多构造函数,可以接受多种参数来不同的对待,而且还重载了四个基本运算符(+ - * /)。

二、string构造函数及其运算符重载

String 类的构造函数
构造函数描述
string(const char * s)将string对象初始化为s指向的NBTS
string(size_type n,char c)创建一个包含n个元素的string对象,其中每个元素都被初始化为字符c
string()创建一个默认的string对象,长度为0(默认构造函数)
string(const string & str)将一个string对象初始化为string对象str(复制构造函数)

string(const char * s,size_type n)

将string对象初始化为s指向的NBTS的前n个字符,及时超过NBTS结尾

template<class Iter>

string(Iter begin,Iter end)

将string对象初始化为区间[begin,end)内的字符,其中begin和end的行为就像指针,用于指定位置,范围包括begin在内,但不包括end

string(const string & str,string size_type pos = 0,size_type n = npos)j将一个string对象初始化为对象str中从位置pos开始到结尾的字符,或从位置pos开始的n个字符
string(string && str)noexcept这是C++11新增的,他将一个string对象初始化为string对象str,并可能修改str(移动构造函数)
string(initalizer_list<char>il)这是C++11新增的,他将一个string对象初始化为初始化列表il中的字符

String类还重载了运算符[ ]

例如:

string str1("xiaoqingwa");
cout << str1[0] << endl;    //打印str1字符串第1个字符

还有其他运算符重载例如(伪代码):

string str1("c++");
string str2("java");
string str3("javascript");
if(str1 > str2)
    ...
else if(str2 == str3)
    ...
else if(str1 < str3)
    ...
else if(str3 != str1)
    ...

等...

三、String方法接口操作

1.输入输出流方法

string特有一个重载<<的方法,还有接收字符串输入的方法:

getline(cin,str1);   //接收字符串输入并且存入str1 string对象中

 另一个版本(三个参数):

getline(cin,str1,':');   //把参数1所表示字符串按参数3分隔,第一次遇到参数3之前的部分存到参数2

2.字符串操作方法

str1.length()  //获取str1的字符串长度

str1.size()   //获取str1的字符串长度 上面的length是早期就有 size用来和STL模板兼容

str1.capacity()   //获取str1分配的内存块大小

str2.reserve()  //请求内存块最小长度

str1.append(str2)  //str1后面追加str2字符串

str1.append(str3,7,11) //str1后面添加str3字符串的某一段子串:

str1.append(5,'.') //str1后面添加5个'.'

 等还有很多,请查阅相关资料

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值