/*
brief:STL中string容器的使用
*/
#include <iostream>
#include "vector"
#include "algorithm"
#include "string"
using namespace std;
void main21()
{
string s1="aaaa";
string s2("bbbb");
string s3=s2;
string s4(10,'a');
cout<<s1<<endl;
cout<<s2<<endl;
cout<<s3<<endl;
cout<<s4<<endl;
}
void main22()//利用指针输出字符串
{
string s1="abcdefg";
for(int i=0;i<s1.length();i++)
{
cout<<s1[i]<<" ";
}
for(string::iterator it=s1.begin();it !=s1.end();it++)//利用迭代器输出
{
cout<<*it<<" ";
}
}
void main23()//复制指定个数个字符到新的内存中
{
string s1="aba";
const char *cfirst = s1.c_str();//注意只读
cout<<*(cfirst+1)<<endl;
printf("s1:%s \n",s1.c_str());//返回string首地址
char buf[128]={0};
s1.copy(buf,3,0);//只拷贝3个字符,不会变成C风格字符串
cout<<"buf1"<<buf<<endl;
}
void main24()
{
string s1="aaa";
string s2("bbb");
s1=s1+s2;
cout<<s1<<endl;
string s3="333";
string s4("444");
s3.append(s4);//字符串拼接一下
cout<<s3<<endl;
}
//字符串的查找和替换
void main25()
{
/*string s1="wh hooell333 33 33 wgh ddsfds 88d";
int index=s1.find("333",0);
cout<<index<<endl;
int offindex =s1.find("333",0);
while(offindex != string::npos)
{
cout<<offindex<<endl;
offindex=offindex+1;
offindex=s1.find("333",offindex);
*/
string s1="wh hooell333 33 33 wgh ddsfds 88d";
int offindex =s1.find("333",0);
while(offindex != string::npos)
{
cout<<offindex<<endl;
s1.replace(offindex,3,"666");
offindex=offindex+1;
offindex=s1.find("333",offindex);
}
cout<<s1<<endl;
}
void main26()//删除一个字符
{
string s1="hello world";
string::iterator it=find(s1.begin(),s1.end(),'l');
if( it !=s1.end())
{
s1.erase(it);
}
cout<<s1<<endl;
s1.erase(s1.begin(),s1.end());
cout<<s1.length()<<endl;
}
void main27()//插入元素在指定位置前面
{
string s1="hello world";
s1.insert(0,"dddddd");
cout<<s1<<endl;
}
void main28()
{
// transform()
}
void main()
{
//
main21();
//
main22();
//
main23();
//
main24();
// main25();
//
main26();
main27();
}
转载请注明原文地址: https://ju.6miu.com/read-35735.html