第三章-string对象基础

string 对象上的操作

  • 读写对象
    cin >> str;,将标准输入的内容读到 str 对象中,从第一个有效字符开始直到空白(空格、换行等)

  • getline 读取一整行
    getline(cin, str)可以保留输入中的空白符,一直读到换行符为止(换行符也读进去了,但返回时会被丢掉),然后存入 string 对象中(不存换行符)

  • size 操作
    size 返回的是 string::size_type 类型,是一个无符号数(切忌混用无符号数和有符号数),可以通过 auto 或者 decltype 来推断

  • 比较string对象

    优先按字典序比较,若字典序无法比较出结果,则再按长度比较

  • 两个 string 对象相加
    将两个 string 拼接起来得到一个新的 string 对象

  • 字面值和 string 对象相加
    字面值可以转换成 string 对象
    字面值之间是不能拼接的,例如string s = "hello" + "world";,这是错误的
    加号两边至少有一个是 string 对象才能实现字面值和 string 对象的拼接

处理 string 对象中的字符
  • 范围 for 循环
    作用:对于 string 对象中的每一个字符(迭代得到)执行操作(要想改变原字符串需要加引用)

    void test()
    {
        string s1("hello world");
    
        for (auto &c : s1)
        {
            c = toupper(c);
        }
        cout << s1 << endl; // HELLO WORLD
    }
    
  • 下标运算符[]
    参数:字符的 index
    返回值:index 处字符的引用
    使用超出范围的下标会引发不可预知的结果(需要避免)

  • 普通 for 循环
    首先要确保下标不越界(体现在循环条件中),然后结合下标运算符进行操作

    void test()
    {
        string s1("hello world");
    
        for (auto &c : s1)
        {
            c = toupper(c);
        }
        cout << s1 << endl; // HELLO WORLD
    
        for (int i = 0; i < s1.size(); i++)
        {
            s1[i] = tolower(s1[i]);
        }
        cout << s1 << endl; // hello world
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值