以下是对于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;
}