string操作小汇总
生活随笔
收集整理的這篇文章主要介紹了
string操作小汇总
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
string在工作中經(jīng)常用到。以下每個(gè)函數(shù)的測(cè)試均為一個(gè)個(gè)單獨(dú)測(cè)試,不互相干擾結(jié)果,每次以最開始的string賦的值為準(zhǔn)。
int main()
{string str = "hello";string str1 = "012345678";string::iterator it;//判斷是否為空cout << str.empty() << endl;//0,表示非空//求string的大小cout << str.size() << endl;//5//string的下標(biāo)操作cout << str[0] << endl;//h//還有=,==,!=,<,<=,>,>=不做演示//insert(pos,args)在pos位置前插入args指定的字符。當(dāng)接受迭代器的參數(shù)時(shí),返回第一個(gè)插入字符的迭代器str.insert(2, str1);//在2號(hào)位上插入str(下標(biāo)從0開始)/he012345678llostr.insert(2,str1,3,5);//在2號(hào)位上插入str1的3號(hào)位后面的5個(gè)元素/he34567llostr.insert(2,"test",3);//在2號(hào)位上插入test中前3個(gè)元素/hetesllostr.insert(2,"test");//在2號(hào)位上插入test/hetestllostr.insert(2,3,'!');//在2號(hào)位上插入3個(gè)'!',注意這里只能是字符/he!!!lloit=str.insert(str.begin(),'t');//迭代器只能對(duì)字符進(jìn)行操作/thellostr.insert(str.end(),3,'!');//helo!!!cout << *it << endl; //返回那個(gè)被插入元素的的引用/t//s.erase(pos,len)刪除從位置pos開始的len個(gè)字符,返回一個(gè)指向s的引用str.erase(1,2);//刪除從1號(hào)位開始的2個(gè)字符/hlostr.erase(str.begin()+1,str.end()-2);//刪除范圍內(nèi)元素,不包括str.end()-2對(duì)應(yīng)的字符/hlocout << *(str.erase(str.begin() + 1, str.end() - 2)) << endl;// 返回指向被刪除元素后面元素的迭代器cout << str.erase(1, 2) << endl;//返回指向被刪除后的str的引用//s.append(args)將args追加到s,返回一個(gè)指向s引用str.append(str1);//hello012345678str.append(str1,6,3);//從6號(hào)位開始追加后面的3個(gè)元素/hello678str.append("test",3);//追加從0號(hào)位開始的3個(gè)元素/hellotesstr.append("test");//直接將test追加到末尾/helloteststr.append(5,'.');//追加5個(gè)./hello.....str.append(str1.begin()+1,str1.end()-1);//不包括str1.end()-1所指元素/hello1234567//s.assign(args)將s中的字符替換為args指定的字符,返回一個(gè)指向s的引用str.assign(str1);//012345678str.assign(str1,0,2);//從0號(hào)位開始替換2個(gè)位/01str.assign("test",2);//替換前2個(gè)字符/testr.assign(5,'*');//替換為5個(gè)*/*****//s.substr(pos,n)返回一個(gè)string,包含s中從pos開始的n個(gè)字符的拷貝。pos的默認(rèn)值是0,n的默認(rèn)值為s.size()-pos,即拷貝從pos開始的所有字符。返回值為一個(gè)stringstr = str1.substr(0,5);//拷貝從0號(hào)位開始的5個(gè)字符/01234str = str1.substr(6);//從6號(hào)開始拷貝/678str = str1.substr(12);//超過范圍拋出異常//s.replace(range,args)刪除s中range內(nèi)字符,替換為args指定的字符。返回替換后的strstr.replace(0,2,str1);//將0號(hào)位到2號(hào)位字符替換為str1,不包括2號(hào)位/012345678llostr.replace(str.begin(),str.end()-1,str1);/012345678ostr.replace(0,2,str1,1,3);//用str的0~2換str1的1~3(不包括尾位)/123llostr.replace(0,2,3,'c');//將str的0~2位換為3個(gè)c/ccclo//s.find(args)查找出args第一次出現(xiàn)的位置,返回下標(biāo)int n = str1.find('0');//n=0//compare比較字符串的大小,一個(gè)一個(gè)字符進(jìn)行比較if (str > str1)cout <<"yes"<< endl;elsecout << "no" << endl;//這里是no,是比較大小,不是比較長(zhǎng)度int m=str.compare(str1);//比較str是否大于str1。m=1表示true//to_string整數(shù)轉(zhuǎn)換為string,stoi為string轉(zhuǎn)換為intcout << to_string(123) << endl;//打印123cout << stoi(str1) << endl;//12345678//c_str()將string轉(zhuǎn)化為const char *類型。char *可以直接轉(zhuǎn)化為stringconst char *p=str.c_str();//打印hello,count可以直接打印pchar Str[] = "mapan";string s = str;cout << s << endl;//打印helloreturn 0;
}
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
參考地址:
http://www.cnblogs.com/ggjucheng/archive/2012/01/03/2310941.html
http ://blog.csdn.net/chenhq1991/article/details/7799172
http ://blog.csdn.net/glp_hit/article/details/8815509
http://blog.csdn.net/changbaolong/article/details/11539711
參考書籍:
C++ Primer
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的string操作小汇总的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: map下标操作
- 下一篇: vector操作小结