目錄
1, 什么是string
2, 創建string
3, 操作string
3-1, 賦值
3-1-1, 賦值(=)
3-1-1, 賦值(assign)
3-2, 修改
3-2-1, 拼接
3-2-1-1, 拼接(+)
3-2-1-2, 拼接(append)
3-2-2, 替換(replace)
3-2-3, 單字符操作
?3-2-4, 插入(insert)
3-3, 查詢
3-3-1, 查找(find)
3-3-2, 查找(rfind)
?3-3-3, 子串(substr)
?3-3-4, 單字符操作
3-3-5, 獲取首尾字符
3-4, 比較(compare)
3-5, 刪除(erase)
3-6,獲取字符串長度
1, 什么是string
C++中的字符串, 本質是一個類
2, 創建string
通過string 對象名, 創建一個string
//普通創建
string str1;
//拷貝構造,str1拷貝給str2
string str2(str1);
//定義5個a組成的字符串
string str3(5, 'a');
3, 操作string
3-1, 賦值
3-1-1, 賦值(=)
通過string 對象名 = 字符串, 進行string對象賦值
//創建str1, 并賦值aaa
string str1 = "aaa";
//創建str2, 并賦值bbb
string str2("bbb");
3-1-1, 賦值(assign)
通過對象名.assign(字符串), 進行string對象賦值
string str2;
str2.assign("bbb");
//字符串有5個字符c組成
string str3;
str3.assign(5, 'c');
//將str3拷貝給str4
string str4;
str4.assign(str3);
//表示獲取str1從第3個索引開始直到最后的字符賦值給str2
str2.assign(str1, 3);
//表示獲取str1從第3個索引開始的后兩個字符賦值給str2
str2.assign(str1, 3, 2);
3-2, 修改
3-2-1, 拼接
3-2-1-1, 拼接(+)
通過對象名1+對象名2, 拼接兩個字符串
string str1 = "hello c++";
//注意拼接之間沒有空格, 等價于str1 += str1
str1 = str1 + str1;
3-2-1-2, 拼接(append)
通過對象名1.append(對象名2), 拼接兩個字符串
string str1 = "hello c++";
str1.append(str1);
//表示從str1的第3個索引開始直到最后, 拼接到str1后面
str1.append(str1, 3);
//表示從str1的第2個索引開始, 拼接3個字符到str1后面
str1.append(str1, 2, 3);
3-2-2, 替換(replace)
?通過對象名.replace(起始索引, 結束索引, 替換值), 可替換字符串內容
string str1 = "hello c++";
//將第1~3號位索引對應的信息替換為aaa
str1.replace(1, 3, "aaa");
3-2-3, 單字符操作
通過對象名[索引]或者對象名.at(索引), 獲取字符串的單個字符
//獲取索引為1對應的字符
cout << str1[1] << endl;
cout << str1.at(1) << endl;
?3-2-4, 插入(insert)
通過對象名.insert(索引, 值), 向字符串中插入數據
//在str1的第二個索引位置插入aaa
str1.insert(2, "aaa");
3-3, 查詢
3-3-1, 查找(find)
通過對象名.find(), 可查找字符串中的子串,?從左開始查找, 返回對應的首次匹配索引
cout << str1.find("aa") << endl;
3-3-2, 查找(rfind)
通過對象名.rfind(), 可查找字符串中的子串,?從右開始查找, 返回對應的首次匹配索引
cout << str1.find("l") << endl;
?3-3-3, 子串(substr)
通過對象名.substr(起始索引, 結束索引), 返回起始索引~結束索引的字符
//返回str1的第1~4個字符
cout << str1.substr(1, 4) << endl;
?3-3-4, 單字符操作
通過對象名[索引]或者對象名.at(索引), 修改字符串的單個字符
//修改索引為1對應的字符
str1[1] = 'a';
str1.at(2) = 'a';
cout << str1[1] << endl;
cout << str1.at(1) << endl;
3-3-5, 獲取首尾字符
通過對象名.front(), 獲取字符串首字符,?通過對象名.back(), 獲取字符串尾字符
cout << str1.front() << endl;
cout << str1.back() << endl;
3-4, 比較(compare)
通過對象名1.compare(對象名2),?進行比較字符串大小, 逐個比較兩個字符串的Ascii碼, 相等返回0, 對象名1大于對象名2返回1,?對象名1小于對象名2返回-1?
string str1 = "hello c++";
string str2 = "1hello c++";
cout << str1.compare(str2) << endl;
3-5, 刪除(erase)
通過對象名.erase(起始索引, 結束索引), 刪除字符串中指定的字符
//刪除str1的第1~3個字符
str1.erase(1, 3);
cout << str1 << endl;
3-6,獲取字符串長度
cout << str1.size() << endl;