#include
#include
using namespace std;
//定义
/*void Strdefine()
{
string str;
cout << str << " " << str.empty() << endl; // 1 空的返回1,非空返回0
string str1(5,'a'); //5个a
cout << str1 << " " << str1.empty() << endl; // 0
string str2("abcdefg");
cout << str2 <<endl;
string str3("abcdefg",3); //输出abc
cout << str3 <<endl;
string str4(str2,2,5); //cdefg,第二个下标到后5个
cout << str4 <<endl;
string str5(str2); //输出str2的值
cout << str5 <<endl;
}
//属性
void StrPro ()
{
string str;
cout << str.capacity() << endl; // 15
string str1(5,'a'); //<=15,15个, 多于15个,以后多余容量就申请16个
//str1.reserve(16); //15-31-47-63 区间
cout << str1.capacity << endl;
string str2("abcdefg");
str2.resize(3); //length和size变为3,capacity不变
cout << str2.length <<endl; // 7
cout << str2.size <<endl;
string str3("abcdefg",3);
cout << str3.size <<endl; // 7
string str4(str2,2,5);
cout << str4.capacity <<endl;
string str5(str2);
cout << str5.capacity <<endl;
}
//输出
void StrCout
{
string str2(“abcdefg”);
cout << str2 << endl;
cout << str.c_str() << endl; //return p;指针
cout << str2[0] << endl; // a,大于7,越界,崩溃
cout << str2.at(8) << endl; //3,d; 大于7,越界,异常
try
{
str2.at(8);
}
catch(out of_range& a)
{
cout << "越界了" << endl;
}
}
*/
//修改
void StrChange()
{
string str2(“abcdefg”);
str2[2] = ‘s’;
str2.at(3) = ‘q’ ;
string str3("abcdefg");
str2.insert(str2.length(),3,'b');
str2 += str3;
str2 +="qweqwe";
str2.append(2,'w');
str2=str3;
cin >> str2;
str2.assign("qweer",2);
}
//其它
void StrFunction()
{
string str2(“abcdefg”);
string str3(“abc”);
cout << (str2 > str3) << endl; //重载比价运算符,结果是真和假
cout << str2.compare(1,3,str3) << endl;
char arrStr[6] = {0};
str2.copy(arrStr,2,3); //2为起始位置,3为个数;
cout << (int)str2.find('b',2);
cout << str2.substr(2,4) << endl; //从2开始打印4个
str2.swap(str3);
cout << str2 << endl;
cout << str3 << endl;
cout << (str2+"qwe") << endl;
}
void FunIterator()
{
string str(“abcdefg”);
string::iterator ite; //迭代器 ,char char*
//char* a = str.c_str() ;
ite = str.begin(); //end()
for (ite; ite!=str.end(); ite++) 返回g后面
{
*ite = 'a';
cout << *ite << " ";
}
str.append(18,'a');
ite = str.begin();
ite[3] = 'w';
// ite[2] = 'w';
// cout << str;
for (size_t i=0; i < str.size(); i++)
{
cout << *ite << " ";
ite++;
}
for (size_t i=0; i < str.size(); i++)
{
cout << ite[i] << " ";
}
int a;
}
void testiterator()
{
string str(“abcefghiy”);
// string str1("efg");//string str("abc");
// str.append(str1.begin(), str1.begin()+3); //或者写成end,加3指向g的后面,输出abcefg;加1变成abcfg;1到2为abcf;
// str.erase(str.begin()+2,str.begin()+5); // abcghiy;
string str1("zxcvbn");
// str.insert(str.begin()+2,3,‘N’); //acNNNcefghiy;
str.insert(str.begin()+2 , str1.begin(), str1.end()); //abzxcvbnefghiy
cout << str;
}
void fun(char c)
{
cout << c;
}
void FunForeach()
{
string str(“qweasdzxc”);
for_ezch(str.begin(),str.end(),fun);
sort(str.begin(),str.end()); //默认从小到大
fou_each(str.begin(),str.end(),greater<char>());
cout << endl;
fou_each(str.begin(),str.end(),fun);
}
int main()
{
//Strdefine();
// StrPro();
//StrCout();
//StrChange();
// StrFunction();
//testiterator();
FunForeach();
system ("pause");
return 0;
}