// string 类型的常用方法

// string 与 char* 的区别

#include <bits/stdc++.h>

using namespace std;

int main()
{
    string s1("ism ");
    string s2("hhhsishg");

    // 拼接
    // s1 += s2;
    s1.append(s2);

    /******************   
    // 修改指定位置的内容
    s1[0] = 'l';

    // 替换
    // int c_pos = s1.find('h');  // 查找字符 h 的位置
    // s1.replace(c_pos, 1, "d"); // 替换字符 h 为 d

    // 替换所有的 h 为 d
    int pos = s1.find('h');
    cout << "h pos = " << pos << endl;
    // while (pos != string::npos)     // npos 表示查找失败
    while (pos != -1) // -1 表示查找失败
    {
        s1.replace(pos, 1, "d");
        pos = s1.find("h", pos + 1);
    } 
    ******************/

    // 查找 is 第一次和最后一次出现的位置
    int is_start = s1.find("is");
    int is_end = s1.rfind("is");
    cout << "is_start = " << is_start << endl;
    cout << "is_end = " << is_end << endl;

    // 查找 is 的长度
    string s3("is");
    cout << "is 的长度: " << s3.size() << endl;

    // 清空内容（保留开始和结束的 is）
    // s1.replace(is_start, is_end - is_start + 2, "");
    s1.erase(is_start + 2, is_end - is_start - 2);

    cout << s1 << endl;

    return 0;
}
