STL string 代码测试

#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;

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值