insert()與substr()函式

時間最考驗人發表於2021-08-11

insert()函式與substr()函式

insert()函式:

insert ( pos, str2);——將字串str2插入到原字串下標為pos的字元前

insert (pos, n, c);——在將n個字元c插入到原字串下標為pos的字元前

insert (pos, str2, pos1, n);——將st2r從下標為pos1開始數的n個字元插在原串下標為pos的字元前

語法:str1.insert(pos , str2); 等等

程式碼參考

#include<iostream>
#include<string>
using namespace std;

int main()
{   
    //insert()函式
    string str1 = "abef";
    string s1 = "cd";
    str1.insert(2,s1);
    cout<<str1<<endl;//abcdef 在串str下標為2的e前插入字串str2
    
    str1.insert(2,5,'c');
    cout<<str1<<endl;//abccccccdef 在串str1下標為2的e前插入5個字元'c'
    
    string str2="hello";
    string s2="weakhaha";
    str2.insert(0,s2,1,3);//將字串s2從下標為1的e開始數3個字元,分別是eak,插入原串的下標為0的字元h前
    cout<<str2<<endl;

	return 0;
}

substr()函式

主要功能是複製子字串,要求從指定位置開始,並具有指定的長度。如果沒有指定長度_Count或_Count+_Off超出了源字串的長度,則子字串將延續到源字串的結尾也可以用於字元的插入拼接

語法:substr(size_type _Off = 0,size_type _Count = n)

​ substr(pos, n)

解釋:pos - 從此位置開始拷貝

​ n - 拷貝長度為 n 的字串(注意:n 是長度而不是下標)

程式碼參考:

#include<iostream>
#include<string>
using namespace std;

int main()
{   
    string str1 = "abcg";
    string str2 = "def";
    
// string類字串可以直接進行連線
//從a開始 長度為3:(下標)+1 的字串abc + def + g
    string str3 = str1.substr(0,2+1) + str2 + str1.substr(2+1);
//                    子串                            子串
    cout<<str3<<endl;//abcdefg

	return 0;
}

總結:

在前插入為insert,複製字串用strsub。兩者均可用來實現字串的插入操作

相關文章