C++编程思想:C++string
生活随笔
收集整理的這篇文章主要介紹了
C++编程思想:C++string
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- C++字符串的初始化
- C++字符串的追加 插入 連接 空間分配 替換
- C++string 查找和替換
- 字符串比較
- 利用迭代器倒排一個字符串
C++字符串的初始化
int main() {// string s1('a'); //不支持單一char字符的轉換// string s(1); //不支持單一數字的轉換string s1(1, 'a');cout << "s1 : " << s1<<endl;string s2(5, 'b');cout << "s2 : " << s2 << endl;string s3("char in this"); //字符串初始化cout << "s3 : " << s3 << endl;string s4("c");//字符串初始化cout << "s4 : " << s4 << endl;}C++字符串的追加 插入 連接 空間分配 替換
int main() {string bigNews("I saw Elvis in a UFO");cout << bigNews<<endl;cout << "bigNews : " << bigNews << endl;//編譯器給bigNews分配了多少存儲空間cout << "bigNews capacity : " << bigNews.capacity() << endl;//bigNews的實際長度,使用長度cout << "bigNews size : " << bigNews.size() << endl;//*************插入****************bigNews.insert(1, "insert");cout << "bigNews : " << bigNews << endl;//編譯器給bigNews分配了多少存儲空間cout << "bigNews capacity : " << bigNews.capacity() << endl;//bigNews的實際長度,使用長度cout << "bigNews size : " << bigNews.size() << endl;//****************替換*******************string rep = "IIIIIIIIIIIIIIIIIIIIIIIIIIIIII";bigNews.replace(0, rep.size(),rep);cout << "bigNews : " << bigNews<< endl;//編譯器給bigNews分配了多少存儲空間cout << "bigNews capacity : " << bigNews.capacity() << endl;//bigNews的實際長度,使用長度cout << "bigNews size : " << bigNews.size() << endl;//************重新分配空間***************bigNews.reserve(100);//編譯器給bigNews分配了多少存儲空間cout << "bigNews capacity : " << bigNews.capacity() << endl; }C++string 查找和替換
//***********************C++string 查找和替換************************* string& replaceAll(string& context, const string& from, const string& to) {size_t lookHere = 0; //lookHere游標很重要,防止from是to的子字符串,出現無限循環size_t foundHere;while ((foundHere = context.find(from, lookHere)) != string::npos){context.replace(foundHere, from.size(), to);lookHere = foundHere + to.size();}return context; }int main() {string con = "I am a good boy,good boy am I";/*string f = "a";string t = "girl";replaceAll(con, f, t);cout << con << endl;*///以下是字符串提供的多個find函數size_t place = con.find("boy"); //查找匹配cout << place << endl;place = con.find_first_of("boy"); //找到第一個與目標字符串任意字符匹配的字符cout << place << endl;place = con.find_last_of("boy"); //找到最后一個與目標字符串任意字符匹配的字符cout << place << endl;place = con.find_first_not_of("boy");cout << place << endl;place = con.find_last_not_of("boy");cout << place << endl;place = con.rfind("boy"); //從最后面開始找到第一個boycout << place << endl; }字符串比較
//************************** 字符串比較 字典比較***************** int main() {string little = "little";string litt = "litt";string litd = "litd";cout << "little > litt : " << (little > litt) << endl;cout << "litt > litd : " << (litt > litd) << endl;}利用迭代器倒排一個字符串
//************一個逆轉字符串順序的函數******************** void reverseString(string& str) {if (str.size() <= 1)return;//取字符串首尾迭代器string::iterator strItr1 = str.begin();string::reverse_iterator strItr2 = str.rbegin();size_t size = str.size() / 2;for (int i = 0; i < size; i++){//交換迭代器內容char temp = *strItr2;*strItr2 = *strItr1;*strItr1 = temp;//移動迭代器位置strItr1++;strItr2++;} }int main() {string str = "I am a ma I";string str2 = "I am a ma I";reverseString(str);cout << str << endl;cout << "str is a huiWen :" << (str == str2) << endl; }總結
以上是生活随笔為你收集整理的C++编程思想:C++string的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++编程思想:模板
- 下一篇: C++编程思想:文件 字符串 输入输出