#include <iostream>
#include <string>
#include <algorithm>
using namespace std;ios
void definition() //定義
{
string str(5,'a');
cout << str <<endl;
string str1("abcdefghijklmn");
cout << str1 <<endl;
string str2("123456789",3);
cout << str2 <<endl;
string str3("abcdefghijklmn",3,5);
cout << str3 <<endl;
}算法
void output(string str) //輸出
{
cout << str << "\n" << str.c_str() << '\n' << str[3] << str.at(3) <<endl;數組
}app
void attribute(string str) //屬性
{
string str1("123");
cout << str1.capacity() << endl; //空間大小
str1.reserve(18); //重置空間大小
cout << str1.capacity() << endl;
cout << str.length() << endl; //字符串長度
cout << str.size() << endl; //字符串大小
str.resize(8); //重置字符串大小
cout << str << endl;
}less
void modification(string str) //修改
{
string str1="123456";
char c1='!';
char c[]="wzr";spa
//中間插入
str.insert(3,str1);
cout << str << endl;
//str.insert(3,str1,3,2);
str.insert(3,c,3);
cout << str << endl;
str.insert(3,2,c1);
cout << str << endl;
//str+=str1;ci
//尾部插入
str.append(str1);
cout << str << endl;
//str.append(c);
//str.append(str1,3,2);
//str.append(c,2);
//str.append(2,c1);字符串
//從新賦值
str.assign(str1);
cout << str << endl;
//str.assign(c);
//str.assign(str1,2,3);//從下標爲2賦值三個
//str.assign(c,2);
//str.assign(3,c1);
//str[3]='@';
//cin >> str[4];原型
//刪除
str.erase(2,3);
cout << str << endl;
str.erase(3);
cout << str << endl;
}string
void compare(string str) //比較
{
string str2=("abcdeff");
cout << str.compare(str2) << endl;
cout << (str>str2) << endl;
}
void operation(string str) //操做
{
char c1[8]="0";
str.copy(c1,3,2); //從3開始複製兩個 2的位置必須小於數組長度
cout << c1 << endl;
string str3="bcd";
cout << str.find(str3,3) << endl; //從下標[3]開始查找 找不到就返回起始位置
cout << (int)str.find(str3,3) << endl; //str3也能夠是字符串,字符
cout << str.substr(3,2) << endl; //返回指定位置的子串下標[3]的2個
str.swap(str3); //交換
cout << str << '\n' << str3 << endl;
}
//運算符重載
void _iterator(string str) //string從新申請空間時迭代器會失效(擴大空間時ite會釋放)
{
string::iterator ite;
ite=str.begin();
for(ite;ite!=str.end();ite++)
{
cout << *ite << endl;
//cin >> *ite;
}
//cout << ite[2] << endl;
//for(size_t i=0;i<str.size();i++)//size爲無符號整型
//{
// cout << ite[i] << endl;
//}
//str.append(18,'h');
//ite[3]='w'; //失效
str.append(18,'i');
ite=str.begin();
ite[11]='w';
cout << str << endl;
}
void useiterator(string str)
{
string str4="qwer";
string::iterator ite=str4.begin();
//str.append(str4.begin(),str4.begin()+4);
//str.append(ite.start(),ite.end()); 錯誤
//str.erase(3,2);
//str.erase(str.begin()+2,3); //str.begin()能夠看做0
str.insert(str.begin()+3,str4.begin(),str4.end());
cout << str << endl;
}
void fun(char c) //c爲string元素(原型)的類型 不是 char *
{
cout << c;
}
void _algorithm(string str)
{
for_each(str.begin(),str.end(),fun);
//遍歷每個(開始,結尾,行爲);
cout << endl;
sort(str.begin(),str.end(),greater<char>());
cout << str << endl;
sort(str.begin(),str.end(),less<char>());
for_each(str.begin(),str.end(),fun);
}
int main(){ string str("abcdefg"); //definition(); //定義 //output(str); //輸出 //attribute(str); //屬性 //modification(str); //修改 //compare(str); //operation(str); //操做 //_iterator(str); //useiterator(str); //使用迭代器 //_algorithm(str); //算法 return 0;}