STL---string
生活随笔
收集整理的這篇文章主要介紹了
STL---string
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include<iostream>
#include<string>
using namespace std;int main()
{//string構造函數string str1;cout << str1.c_str() << endl; //c_str 返回一個const char *的頭指針string str2(5, 'a'); //第一個參數是一個size_t 的類型,第二個參數是一個字符類型cout << str2.c_str() << endl; string str3("luojianyi"); //第二種構造函數cout << str3.c_str() << endl;string str4("abcdefg", 3); //第一個參數是const char *的類型,然后第二個是取得第一個參數的前幾個cout << str4.c_str() << endl;string str5(str3, 1, 5); //第一個參數是一個string類型,第二和第三個參數是一個范圍cout << str5.c_str() << endl;string str6(str3); //拷貝構造函數cout << str6.c_str() << endl;//string 的重載運算符string str7;cin >> str7;cout << str7 << endl;cout << str7[3] << endl;cout << str7.at(3) << endl;return 0;
} View Code #include<iostream>
#include<string>
using namespace std;int main()
{string str1(5, 'w');//指定下標的修改str1[1] = 'a';str1.at(2) = 'b';cout << str1.c_str() << endl;//中間插入//way 1string str2("abcdefg");string str3("lllll");str2.insert(2,str3); //在str2下標為2的地方插入str3cout << str2.c_str() << endl;//way 2string str4("abcdef");string str5("abcdefg");str4.insert(3, str5, 0, 2); //將str5的0 1 下標插入到str4的下標的3位置cout << str4.c_str() << endl;//way 3string str6("abcdef");str6.insert(3, 5, 'v'); //在str6下標為3的地方插入5個‘v’cout << str6.c_str() << endl;//尾巴插入//way 1 重載+=運算符string str7("aaaaa");string str8("bbbbb");str7 += str8;cout << str7.c_str() << endl;str7 += "ccccc";cout << str7.c_str() << endl;//appendstring str9("aaaaa");str9.append("bbbbb");cout << str9.c_str() << endl;//append 還有其他添加方式,需要的時候可以去查詢//重新賦值// 重新 =// cin>>// 使用assign方法//eraser方法string str10("abcdefg");str10.erase(2, 3); //從下標為2的地方擦除3個元素cout << str10.c_str() << endl;return 0;
} View Code #include<iostream>
#include<string>
using namespace std;int main()
{string str1("abc");string str2("abcd");//比較函數 重載運算符 cout << (str1 > str2) << endl; //這里使用運算符進行比較的時候需要加上括號//compare 函數cout << str1.compare(str2) << endl;//比較函數的定義//從兩個字符串第一個開始按照ascii碼進行比較//abc 和 abcd 前三個字符都是相等的,的那個比較第四個字符的時候,前面的字符串已經沒有了,所以后面一個字符串大//abc 和 av 當比較到第二個字符的時候,v 大于 b 所以后面一個字符串大return 0;
} View Code #include<iostream>
#include<string>
using namespace std;int main()
{//查找string str1("abcdef");string str2("bc");cout << str1.find(str2, 0) << endl; //從str1的下標0開始尋找str2
cout << str1.find(str2, 2) << endl; //從str1的下標2開始尋找str2cout << (int)str1.find(str2, 2) << endl; //將上面一條語句返回的結果強轉為int//返回子串string str3("abcdefg");cout << str3.substr(2, 3) << endl; //從下標為2開始返回三個字符子串//交換string str4("abc");string str5("abcde");str5.swap(str4);cout << str4 << endl;cout << str5 << endl;return 0;
} View Code #include<iostream>
#include<string>
using namespace std;int main()
{//使用迭代器遍歷string結構string str1("123456789");string::iterator ite;//way 1ite = str1.begin();for (rsize_t i = 0; i < str1.size(); i++){cout << *ite << " ";ite++;}cout << endl;//way 2ite = str1.begin();for (rsize_t i = 0; i < str1.size(); i++){cout << ite[i] << " ";}cout << endl;//way 3for (ite = str1.begin(); ite != str1.end(); ite++){cout << *ite << " ";}cout << endl;//補充 我們可以通過迭代器訪問元素,也可以使用迭代器修改元素string str2("aaaaaaaaaaa");string::iterator ite1;ite1 = str2.begin();ite1[3] = 'b';cout << str2 << endl;//跌倒器失效,但我們給一個迭代器綁定了一個容器,當容器擴容的時候其實就是相當于重新申請了內存空間,這個時候我們原來綁定的迭代器就會失效,需要重新綁定return 0;
} View Code #include<iostream>
#include<string>
using namespace std;int main()
{string str1("abc");string str2("def");str1.append(str2.begin(), str2.begin() + 3);cout << str1 << endl;string str3("abc");string str4("def");str3.append(str4.begin(), str4.end());cout << str3 << endl;return 0;
} View Code #include<iostream>
#include<string>
#include<algorithm>
#include<functional>
using namespace std;void fun(char ch)
{cout << ch << " ";
}
int main()
{string str1("37428797934748");for_each(str1.begin(), str1.end(), fun);//前兩個參數是范圍,第三個參數是一個操作函數//使用了一個算法 所以要包含 algorithm 頭文件cout << endl;//排序sort(str1.begin(), str1.end()); //默認從小到大排序
for_each(str1.begin(), str1.end(), fun);cout << endl;sort(str1.begin(), str1.end(), greater<char>());//第三個參數是仿函數 需要添加一個頭文件 functional
for_each(str1.begin(), str1.end(), fun);cout << endl;return 0;
} View Code
?
轉載于:https://www.cnblogs.com/luojianyi/p/9614879.html
總結
以上是生活随笔為你收集整理的STL---string的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用的排序算法的时间复杂度和空间复杂度
- 下一篇: 这是一个测试博客3