C++ string类insert用法总结

basic_string& insert( size_type index, size_type count, CharT ch );
在index位置插入count个字符ch

string str = "meihao";

string sstr = str.insert(0,2,'a');

cout<<sstr<<endl;   //aameihao

basic_string& insert( size_type index, const CharT* s );
index位置插入一个常量字符串

string str = "meihao";

string sstr = str.insert(1,"hello~");

cout<<sstr<<endl;   //mhello~eihao

basic_string& insert( size_type index, const CharT* s, size_type count );
index位置插入常量字符串中的count个字符

string str = "meihao";

string sstr = str.insert(1,"hello~",3);

cout<<sstr<<endl;  //mheleihao

basic_string& insert( size_type index, const basic_string& str );
index位置插入常量string

string str = "meihao";

string sstr = str.insert(1,str);

cout<<sstr<<endl;  //mmeihaoeihao

basic_string& insert( size_type index, const basic_string& str,

                      size_type index_str, size_type count );

index位置插入常量str的从index_str开始的count个字符

string str1 = "meihao";

string str2 = "hello~";

string sstr = str2.insert(6,str1,3,3);

cout<<sstr<<endl;  //hello~hao

basic_string& insert( size_type index, const basic_string& str,

                      size_type index_str, size_type count = npos);

index位置插入常量str从index_str开始的count个字符,count可以表示的最大值为npos.这个函数不构成重载

npos表示一个常数,表示size_t的最大值,string的find函数如果未找到指定字符,返回的就是一个npos

string str1 = "meihao";

string str2 = "hello~";

string sstr = str2.insert(6,str1,3,string::npos);

cout<<sstr<<endl;  //hello~hao

cout<<string::npos<<endl;  //4294967295

iterator insert( iterator pos, CharT ch );
iterator insert( const_iterator pos, CharT ch );

string str1 = "meihao";

string::iterator it = str1.insert(str1.begin(),'a');

// string::iterator it = str1.insert(str1.cbegin(),'a');  //第二种

cout<<str1<<endl;  //ameihao

cout<<*it<<endl;  //a

void insert( iterator pos, size_type count, CharT ch );
迭代器指向的pos位置插入count个字符ch
 

string str1 = "meihao";

str1.insert(++str1.begin(),2,'a');

cout<<str1<<endl;  //maaeihao

iterator insert( const_iterator pos, size_type count, CharT ch );
迭代器指向的pos位置插入count个字符ch

string str1 = "meihao";

string::iterator it = str1.insert(++str1.cbegin(),2,'a');  //和上面的可以混用

cout<<str1<<endl;  //maaeihao

void insert( iterator pos, InputIt first, InputIt last );

iterator insert( const_iterator pos, InputIt first, InputIt last );

string str1 = "meihao";

string str2 = "hello";

//string::iterator it = str1.insert(str1.begin(),str2.begin(),str2.end());

string::iterator it = str1.insert(str1.begin(),std::begin(str2),std::end(str2));

cout<<str1<<endl;  //hellomeihao

cout<<*it<<endl;  //h

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值