C++ STL-string实例

来源:互联网 发布:java编写杨辉三角 编辑:程序博客网 时间:2024/06/08 14:05

vector与iterator

#if 0/*容器(vector)与迭代器(iterator)循环查找*/#include<iostream>#include<vector>//STL向量容器#include<algorithm>//STL算法using namespace std;int main(){vector<int> a;//声明一个变量(向量容器,可以代替数组,动态数组)a.push_back(11);a.push_back(22);a.push_back(33);a.push_back(444);//输出向量里面的数据vector<int>::iterator i=a.begin();//使用向量迭代器//循环while(i!=a.end()){//迭代器实际为指针cout<<"This is:"<<*i<<endl;++i;//迭代器}//STL算法进行查找,begin-endvector<int>::iterator element=find(a.begin(),a.end(),225);//查找22//如果没找到则等于a.end()if(element!=a.end())//已经找到{int position=distance(a.begin(),element);//下标cout<<"value:"<<*element<<endl;cout<<"位置:"<<position<<endl;}else{cout<<"Find not the value..."<<endl;}return 0;}#endif

STL-string

#if 0/*STL-string*/#include<iostream>#include<string>int main(){/*C-string,并不是真正意义的字符串char xc[20]="sw";char *xc1="sw";*/using namespace std;//std::stringstringstrName("小明");cout<<"str:"<<strName<<endl;string strName1="小红";cout<<"str1:"<<strName1<<endl;//定义C风格字符串const char* strc="hello string";string strcpp(strc);//将c风格的字符串转换为c++风格的字符串cout<<"strcpp:"<<strcpp<<endl;//声明Cpp风格字符串string strcpp1("hello strig");string strcpp2(strcpp1);//将cpp1作为参数传递给cpp2,相当于strcpycout<<"strcpp1:"<<strcpp1<<endl;cout<<"strcpp2:"<<strcpp2<<endl;string strcpp3(strc,5);//复制strc前五个cout<<"strcpp3:"<<strcpp3<<endl;//初始化为10个astring sw(10,'a');cout<<"sw:"<<sw<<endl;//c string copyconst char *sw="hello c string...";char *xc=new char(strlen(sw)+1);//初始化大小strcpy(xc,sw);//将sw复制到xc//delete[] xc;//释放}#endif

string常见操作

#if 0/*STL-string常见操作*/#include<iostream>#include<string>//#include<iterator>//迭代器using namespace std;int main(){string str1("hello string");//初始化//cout<<"str1:"<<str1<<endl;/*用传统方法显示字符串的每一个字符*/cout<<"传统方法:"<<endl;for(size_t i=0;i<str1.length();++i){cout<<str1[i]<<endl;}/*使用迭代器(iterator)*/cout<<"iterator:"<<endl;string::const_iterator itr;for(itr=str1.begin();itr!=str1.end();++itr){cout<<*itr<<endl;}cout<<str1.c_str()<<endl;//得到C语言的字符串return 0;}#endif

字符串连接

#if 0/*使用Cpp字符串进行连接*/#include<iostream>#include<string>using namespace std;int main(){string str1("hello");string str2("string");str1+=str2;//连接字符串cout<<"link:"<<str1<<endl;string str3("asdasd");str1.append(str3);//link-追加cout<<"str1:"<<str1<<endl;const char* str4="swxctx";//Cstr1.append(str4);cout<<"str1:"<<str1<<endl;return 0;}#endif

查找

#if 0/*查找*/#include<iostream>#include<string>using namespace std;int main(){string str1("Good evening,hello,swxctx,hello!");cout<<str1<<endl;//查找size_t noffset=str1.find("hello",0);//从0处开始查找helloif(noffset!=string::npos){cout<<"success<index>:"<<noffset<<endl;}else{cout<<"failed"<<endl;}cout<<endl;//查找多个size_t noffset1=str1.find("hello",0);//从头查找while(noffset1 != string::npos)//一直循环查找{cout<<"success<index>:"<<noffset1<<endl;size_t noffset2=noffset+1;//第一次找到后位置加1noffset1=str1.find("day",noffset2);//查找第二个}cout<<endl;/*查找所有的o*/size_t offseta1=str1.find('o',0);//从头开始查找owhile(offseta1 != string::npos){cout<<"success<index>:"<<offseta1<<endl;size_t offseta2=offseta1+1;offseta1=str1.find('o',offseta2);//从第二次位置开始(找到第一个以后)}return 0;}#endif

截短

#if 0/*截短*/#include<iostream>#include<string>#include<algorithm>using namespace std;int main(){string str1("hello string!This is a beautiful day..");cout<<"The string is:"<<str1<<endl;cout<<endl;//截短str1.erase(13,17);//13-17截断cout<<"new(13-17):"<<str1<<endl;cout<<endl;//find,迭代器string::iterator strfin=find(str1.begin(),str1.end(),'s');if(strfin!=str1.end()){str1.erase(strfin);//将找到的删除cout<<"delect str1:"<<str1<<endl;cout<<endl;}//delect allstr1.erase(str1.begin(),str1.end());if(str1.length()==0)cout<<"The string is empty..."<<endl;cout<<endl;return 0;}#endif

反转

#if 0/*字符串反转*/#include<iostream>#include<string>#include<algorithm>using namespace std;int main(){string str1("Hello string!We will reverse you.");cout<<"str1:"<<str1<<endl;cout<<endl;//reverse反转reverse(str1.begin(),str1.end());cout<<"new str1:"<<str1<<endl;cout<<endl;return 0;}#endif

大小写转换

/*字符转换*/#include<iostream>#include<string>#include<algorithm>using namespace std;int main(){cout<<"Please input a line string1:";string strInput;getline(cin,strInput);//读取//转变为大写transform(strInput.begin(),strInput.end(),strInput.begin(),toupper);cout<<"after:"<<strInput<<endl;//转变为小写transform(strInput.begin(),strInput.end(),strInput.begin(),tolower);cout<<"after str:"<<strInput<<endl;return 0;}

0 0
原创粉丝点击