C++中string类详解

1string类型的构造函数:

string  s

定义一个空的string类型(默认构造函数)

string s(cp)

cpc风格的字符串)初始化string对象

string s(s1)

string对象s1初始化s

string s(n,’c’)

s初始化为’c’n个副本

string s(cp,n)

c风格字符串中前n个字符初始化s

string s(s1,pos)

s被初始化为从s1开始到末尾的字符

string s(s1,pos,len)

s初始化为从s1下标poslen个字符,如果pos>s1.size(),操作为定义,无论len有多长,最多只能复制s1.size()-pos个字符

string s=s1

复制构造函数(string对象)

string s=cp

复制构造函数(c风格字符串)

2string对象的读写:

       string对象可以通过cout可以输出,通过cingetline输入;cingetline的区别:

        1)  cin读取并忽略开头的所有空白字符(空格、换行符、制表符),读取字符直到遇到空白字符,读取终止;

        2)  getlinecinline)将istream参数作为返回值,getline并不忽略开头的换行符,读取输入的下一行,遇到换行符结束,但不保存换行符,如果第一个字符是换行符,结果为空字符串;

3string::size_type

      size()操作返回类型,该定义与unsignedint或者unsigned long有相同的含义,根据具体长度决定,所以程序员一般将返回类型赋值于string::size_type,这样避免越界或者负数的产生。

4string类型是字符的容器,也是顺序容器的一种,因此支持迭代器操作;

5string类型支持capacityreserve操作,也就是容器的自增长操作;

6string不支持以栈的形式操纵容器,因此它不支持frontbackpop_backpush_frontpop_front操作。

7string对象支持与顺序容器共有的插入、删除、替换、取大小操作;

8string对象一些常用的特有操作:

s.substr(pos,n)

返回从下标pos开始的n个字符串

s.substr(pos)

返回从下标pos开始到s末尾的所有字符串

s.substr()

返回s的副本

s.append(args)

args串接到s后面,返回s的引用

s.replace(pos,len,args)

删除spos开始的len个字符,并用args替换之,返回s的引用,不要求删除长度与插入长度相同

s.replace(b,e,args)

删除s中由迭代器be标记范围的字符,并用args替换之,返回s的引用,不要求删除长度与插入长度相同

上述中,args所有可能的表示如下:

s

另外一个string对象

s,pos,len

s下标pos开始的n个字符

cp

Cp指向的C语言风格的字符串

Cp,len

Cp指向的c语言风格字符串的前len个字符

n,c

字符cn个副本

b,e

be迭代器指向的元素

9string类型的查找函数:

String类型的查找操作全部返回string::size_type(找到匹配,是其相应的位置)类型或者string::npos(没有找到匹配)

s.find(args)

查找argss中的第一次出现

s.rfind(args)

查找argss中的最后一次出现

s.find_first_of(args)

查找args中任意字符在s中的第一次出现

s.find_last_of(args)

查找args中任意字符在s中的最后一次出现

s.find_first_not_of(args)

查找第一个不属于args的字符

s.find_last_not_of(args)

查找最后一个不属于args的字符

以上args所有可能情况如下:

c,pos

从下标pos开始查找字符c

s1,pos

从下标pos开始查找s1

cp,pos

从下标pos开始查找c风格字符串cp

cp,pos,n

从下标pos开始查找c风格字符串cp的前n个字符

10string类型字符串的链接操作“+”操作符左右必须至少有一个string类型:

string s1=”hello”+”nihao”   错误

string s1=”hello”+s2  正确

string s1=s2+”hello”+”nihao” 正确

string s1=hello+”nihao”+s2  错误

11string类型提供一个名为c_str的成员函数,可以提取string类型中的c风格字符串,该函数返回的指针指向const char类型的数组,必须将其赋值给const char类型的指针或者数组:

String str(“hello”);

    Char *cr1=str.c_str();    错误

Const char *cr2=str.c_str();   正确



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值