您好,登錄后才能下訂單哦!
這篇文章主要介紹“C++中常用的string類字符串函數有哪些”,在日常操作中,相信很多人在C++中常用的string類字符串函數有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C++中常用的string類字符串函數有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
常用的字符串函數包括:復制、拼接、查找字符、截短、反轉、大小寫轉換等。使用這些字符串函數,能夠輕松的解決很多字符串操作問題,并且使你的代碼變得更加簡潔可讀。
要將兩個字符串拼接在一起,可以使用運算符+=,也可以使用成員函數append():
#include<iostream>#include<string>using namespace std;int main(){ string s1("I love"); string s2(">);//方法1:+= s1+=s2; cout<<s1<<endl;//方法2:append() string s3(" I love you very much!"); s1.append(s3); cout<<s1<<endl;return 0;}
string類的成員函數find,可以用來查找字符串中的字符和子字符串,比如:
//從索引為n的位置開始,查找字符串s1中的子串s2,并返回給pos。(其中,s2可以是字符也可以是子字符串)int pos=s1.find(s2,n);
#include<iostream>#include<string>using namespace std;int main(){ string s1("I love you! and do you love me?"); cout<<"s1:"<<s1<<endl;//1.從最開始處開始搜索,返回字符串love第一次出現的位置 size_t position= s1.find("love",0);if(position!=string::npos) //string:npos實際值為-1,表示沒有找到要搜索的元素 cout<<"字符串love第一次出現的位置:"<<position<<endl;else cout<<"字符串love沒有被找到"<<endl; //2.返回所有子字符串的位置 cout<<"字符串love出現的所有位置:"; size_t all_pos=s1.find("love",0);while(all_pos!=string::npos){ cout<<all_pos<<" "; size_t search_pos=all_pos+1; all_pos=s1.find("love",search_pos); //返回子字符串出現的位置 } return 0;}
(1)給定偏移位置(刪除的起始位置)和要刪除的字符個數。
string s1 = "I love you very much!"s1.erase(2,4); //從索引號2開始,刪除4個字符,即刪掉love。
(2)在給定指向字符的迭代器時刪除該字符
//刪除字符串s1中的所有的字符'I'#include<iostream>#include<string>#include<algorithm>using namespace std;int main(){ string s1("I love you! and do you love me?"); string::iterator pos = find(s1.begin(),s1.end(),'I'); //找到字符'I'的位置給迭代器if(pos!=s1.end()) s1.erase(pos); //依次刪除迭代器指向的字符 cout<<s1<<endl;return 0;}
(3)在給定兩個迭代器指定的范圍時,刪除該范圍內的字符
s1.erase(s1.begin(),s1.end());
所謂反轉,就是首位倒序存放。比如要判斷某字符串是否是回文串,就可以將其反轉,再與原來的字符串進行比較。
#include<iostream>#include<string>#include<algorithm>using namespace std;int main(){ string s1("I love you!");reverse(s1.begin(),s1.end()); //將s1進行反轉 cout<<s1;return 0;}
//1.將字符串s1轉換為大寫transform(s1.begin(),s1.end(),s1.begin(),toupper);//2.將字符串s1轉化為小寫transform(s1.begin(),s1.end(),s1.begin(),tolower);
到此,關于“C++中常用的string類字符串函數有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。