C++中的string对象(3)——处理string对象中的字符

1、(C++11)基于范围的for语句:for(定义一个变量用于访问序列中的基础元素:表示一个序列的对象)

   string s("hello");//string对象表示一个字符的序列

   for(auto c:s)//每次迭代,c被初始化为s中的下一个字符

   //要执行的操作


2、(C++11)上述操作只能用于读取string对象,如果想要改变string对象中字符的值,则必须把循环变量定义成引用类型。当使用引用作为循环控制变量时,这个变量实际上被依次绑定到了序列的每个元素上。

   string s("hello");

   for(auto &c:s)

   c='o';


3、使用下标运算符([ ])可以用于访问string对象中指定的某个字符。

   3.1、其接受的参数是string::size_type类型的值并从0计起表示要访问的字符的位置,返回该位置上的字符的引用

   3.2、string对象的下标必须大于等于0而小于string对象的长度,C++并不要求标准库检测下标是否合法,故一旦使用了一个超出范围的下标将引发不可预知的结果。由此推断,使用下标访问空string也会引发不可预知的结果,所以在访问之前,应首先确认对象是否为空。

      string s;

      if(!s.empty())

      s[0]='o';//只要字符不是常量,就可以为下标运算符返回的字符重新复制

   3.3、下标的值称作“下标”或“索引”,如果某个索引是带符号类型的值将自动转换成string::size_type类型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值