1、string

string的初始化,在C++中字符串是一种数据类型;

(1)、string的初始化,遍历,字符串连接

代码如下:

#include<iostream>#include<string>#include<stdio.h>usingnamespacestd;intmain(void){//string的初始化,在C++中字符串是一种数据类型;strings1="abcdefg";strings2("abcdefg");strings3(s2);strings4=s1;//调用拷贝构造函数;strings5(10,'a');//10个空间中的字符都是'a';s5=s1;cout<<"s3:"<<s3<<endl;cout<<"s5:"<<s5<<endl;//string的遍历,重载了[]操作符;//1、数组方式遍历[]for(inti=0;i<s1.length();i++){cout<<s1[i]<<"";//出现错误(下标越界),不会向外面剖出异常,引起程序的中断;}cout<<endl;//2、迭代器string::iteratorit;for(it=s1.begin();it!=s1.end();it++){cout<<*it<<"";}cout<<endl;//3、函数at()遍历for(inti=0;i<s1.length();i++){cout<<s1.at(i)<<"";//会剖出异常,合理的解决下标越界;}cout<<endl;//字符指针和string的转换//此时,把s1====>char*把内存首地址给露出来;printf("s1:%s\n",s1.c_str());//s1中的内容拷贝到buf中;charbuf[123]={0};s1.copy(buf,2,0);//n,pos;下标从0开始拷贝2个字符到buf中,不会是C风格的,注意自己加上0结束标志;cout<<buf<<endl;//string子符串的连接s1=s1+s2;//直接+就表:字符串的连接;s1+=s2;//+=也是字符串的连接;s1.append(s4);//调用方法append()也是字符串的连接;cout<<s1<<endl;return0;}

运行结果:

(2)、string的查找,替换

代码如下:

#include<iostream>#include<string>#include<string.h>usingnamespacestd;intmain(void){//字符串的查找和替换strings1="wbmhellowbm111wbm222wbm333";//1、第一次出现wbm的下标intindex=s1.find("wbm",0);cout<<"index:"<<index<<endl;//2、求wbm每一次出现的数组下标/*intoffindex=s1.find("wbm",0);while(offindex!=-1){cout<<"offindex:"<<offindex<<endl;offindex+=strlen("wbm");offindex=s1.find("wbm",offindex);}*///3、把小写wbm换成大写intoffindex=s1.find("wbm",0);while(offindex!=-1){cout<<"offindex:"<<offindex<<endl;s1.replace(offindex,strlen("wbm"),"WBM");//从下标offindex开始,删除n个字符,替换为后面的字符;offindex+=strlen("wbm");offindex=s1.find("wbm",offindex);}cout<<"s1:"<<s1<<endl;strings3="aaabbbccc";s3.replace(0,3,"AAA");//替换的函数;cout<<"s3:"<<s3<<endl;return0;}

运行结果:

(3)、区间的删除和插入

代码如下:

#include<iostream>#include<string>#include<algorithm>usingnamespacestd;intmain(void){//区间删除和插入strings1="hello1hello2hell03";string::iteratorit=find(s1.begin(),s1.end(),'l');if(it!=s1.end()){s1.erase(it);//删除算法;}cout<<"s1:"<<s1<<endl;s1.erase(s1.begin(),s1.end());//删除从pos开始的n个字符;cout<<"s1全部删除:"<<s1<<endl;cout<<"s1的长度:"<<s1.length()<<endl;strings2="BBB";s2.insert(0,"AAA");//头插法s2.insert(s2.length(),"CCC");//尾插法cout<<s2<<endl;return0;}

运行结果:

(4)、string的大小写转换-->函数指针

代码如下:

#include<iostream>#include<string>#include<algorithm>usingnamespacestd;intmain(void){strings1="AAAbbb";transform(s1.begin(),s1.end(),s1.begin(),0,toupper);//toupper可以是:函数的入口地址,函数对象,cout<<s1<<endl;strings2="AAAbbb";transform(s2.begin(),s2.end(),s2.begin(),0,tolower);cout<<s2<<endl;return0;}