以下是对于string容器常用功能和函数的总结
 主要包括
 1、定义string
 2、字符串赋值
 3、字符串拼接:str.append()
 4、字符串查找:str.find() / str.rfind()
 5、字符串替换:str.replace()
 6、字符串长度比较:str.compare()
 7、字符串存取:str.at()
 8、字符串插入:str.insert()
 9、字符串删除:str.erase()
 10、字符串获取子串:mystr = str.substr()
#include <iostream>
#include <string>
using namespace std;
void test01()
{
    string str = "hello world!";
    cout << "1 定义字符串:str = " << str << endl;
    cout << endl;
    string str1 = str;
    cout << "2 字符串赋值:str1 = " << str1 << endl;
    cout << endl;
    str.append(" hello cpp!");
    cout << "3 字符串拼接:str = " << str << endl;
    /*
    // append(strName, startPoint, charNum)
    str.append(str1,3,2);
    cout << str << endl;
    */
    cout << endl;
    /*
    4 查找和替换
    查找:查找指定字符串是否存在
    替换:在指定的位置替换字符串
    */
    str = "abcdefghde";
    int pos1 = str.find("de");  // 从左向右数,de第一次出现的位置
    int pos2 = str.rfind("de"); // 从右向左数,de第一次出现的位置
    cout << "4.1.1 find:pos1  = " << pos1 << endl;
    cout << "4.1.2 rfind:pos2 = " << pos2 << endl;
    // 从8号位置起的2个字符,替换成"ijlmn"
    str.replace(8,2,"ijlmn"); // replace(startpos, replaceNum, str_replaced)
    cout << "4.2 replace:str = " << str << endl;
    cout << endl;
    /*
    5 字符串长度比较: 比较ASCLL码,最大的作用是比较两个字符串是否相等
    如果 长度相等,返回0,
    如果 长度少n个,返回 -n
    如果 长度大m个,返回 m
    = 返回 0
    > 返回 1
    < 返回 -1
    */
    str = "hello";
    int flag1 = str.compare("hello world");
    int flag2 = str.compare("hel");
    cout << "5.1 compare:flag1 = " << flag1 << endl;
    cout << "5.2 compare:flag2 = " << flag2 << endl; 
    cout << endl; 
    /*
    6 字符的存取
    注:可以对单个字符进行操作
    */
    str = "hello world";
    str.at(1) = 'h';
    str[2] = 'a';
    cout << "6 at:str = " << str << endl;
    cout << "6.2 :str = " << str << endl;
    cout << endl;
    /*
    7 插入和删除
    str.insert(int pos, "str");
    str.erase(int pos, 删除的字符数量)
    */
    str = "hello world";
    str.insert(6,"hi ");
    cout << "7.1 insert:str = " << str << endl;
    str.erase(6,3);
    cout << "7.2 erase :str = " << str << endl;
    cout << endl;
    /*
    8 获取子串,不改变原有字符串
    从字符串中获取想要的子串 substr(起始位置,截取数量)
    */
    str = "hello world";
    string mystr = str.substr(1,4);
    cout << "str = "<< str << endl;
    cout << "8 substr:mystr = " << mystr << endl;
    
}
int main(int argc, char **argv)
{
    test01();
    return 0;
}




















