string基本操作:刪除制定位置,擷取,替換,查詢字串位置,插入字串
阿新 • • 發佈:2018-12-02
#include<iostream>
#include<string>
using namespace std;
int main() {
//////////////////////////////////////////////////////////////////////////////
//刪除制定位置字串erase(刪除起始位置, 以起始位置開始的相對結束位置);
//會改變字串原有內容!!!!!!
std::string str = "0123456789";
str.erase(0, 5);
std::cout << str << std::endl;
//////////////////////////////////////////////////////////////////////////////
//擷取字串 str.substr(擷取起始位置, 以起始位置開始的相對結束位置);
//如果str.substr(擷取位置),不輸入第二個引數 就是從擷取位置到最後位置
//不會改變字串原有內容,返回值是要擷取的字串
str = "01234567890";
std::cout << str.substr(2, 3) << std::endl;
std::cout << str << std::endl;
//////////////////////////////////////////////////////////////////////////////
//替換字串 str..replace(擷取起始位置,以起始位置開始的相對結束位置)
//第三個引數可以是 char*或 string 型別
str = "01234567890";
std::string str1 = "AAAAAA";
std::cout << str.replace(2 ,5, str1) << std::endl;
std::cout << str.replace(2, 4, "_ABCD_") << std::endl;
//////////////////////////////////////////////////////////////////////////////
//查詢字串位置 str.find("RD"),引數是 char*或者 string 型別都可以
std::string cc = "RD";
str = "01234567890 HELLO WORD";
std::cout << str.size() << std::endl;
//自己判斷 find函式的返回值 不能大於 字串的最大個數,不能小於0
size_t idx = str.find("RD");
if (idx < str.size() && idx > 0) {
std::cout << "找到了位置在" <<idx<< std::endl;
}
else {
std::cout << "沒找到" << std::endl;
}
//string::npos表示不存在的位置 find的返回值是std::string::size_type 型別的
std::string::size_type pos;
pos = str.find(cc);
if (pos != str.npos) {
std::cout << "找到了位置在" << pos << std::endl;
}
else {
std::cout << "沒找到" << std::endl;
}
//////////////////////////////////////////////////////////////////////////////
//插入字串 str4.insert(插入位置,char*或者string);
str = "01234567890";
str.insert(5,"_ABC_");
std::cout << str << std::endl;
//insert(插入位置,插入字元個數,字串);
str = "01234567890";
str.insert(5, 5,'Z');
std::cout << str << std::endl;
//insert(插入位置,要插入的char*或string,要插入字串從0到結束位置);
str = "01234567890";
str.insert(5,"HELLO", 3);
std::cout << str << std::endl;
//insert(插入位置,要插入的char*或string,要插入字串的起始位置,要插入字串的結束位置);
str = "01234567890";
string sstr = "HELLO";
str.insert(5, sstr,1,3);
std::cout << str << std::endl;
cin.get();
return 0;
}