C++中对String的各种操作
生活随笔
收集整理的這篇文章主要介紹了
C++中对String的各种操作
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.string的各種動態(tài)、靜態(tài)賦值
//靜態(tài) string s1=("abckd"); string s2("bbbbb"); string s3(s1); string s4=s2; //動態(tài) string s5; cin>>s5;2.sting的遍歷
string s="xiaojaiyu"; string::iterator iter; //數(shù)組方式遍歷 for(int i=0;i<=s.length()-1;i++){cout<<s[i]; } //迭代器方式 for(iter=s.begin();iter!=s.end();iter++){cout<<*iter<<endl; }3.字符指針與string互換
string s; cin>>s; char buf[128]; strcpy(buf,s.c_str()); //cout<<"buf:"<<buf<<end;4.字符串的部分拷貝
string s="xiao jia yu"; char a[20]; s.copy(a,3,3);//從第三個字符開始拷貝3個字符5.字符串的連接
//第一種方式 string s1="xiao"; string s2="jiayu" string s3=s1+s2; //第二種方式 string s4="bang"; s4.append(s3);6.字符串的查找與替換
string s1="wbm hello wbm 111 wbm 222 wbm 333"; //查找出現(xiàn)wbm的第一個下標(biāo) int offindex=s1.find("wbm",0);//從位置0開始 //查找在string中出現(xiàn)wbm所有下標(biāo)的位置 int offindex=s1.find("wbm",0);//沒有找到就會返回-1 while(offindex!=s1.npos){ cout<<"offindex:"<<offindex<<endl; offindex++; offindex=s1.find("wbm",offindex); } //將所有的wbm換成大寫 int offindex=s1.find("wbm",0); while(offindex!=s1.npos){s1.replace(offindex,3,"WBM");offindex++;offindex=s1.find("wbm",offindex); }7、大小寫轉(zhuǎn)換
string s1='AAAbbb'; transform(s1.begin(),s1.end(),s1.begin(),toupper);//全部轉(zhuǎn)化為大寫 transform(s1.begin(),s1.end(),s1.begin(),tolower);8.區(qū)間的插入與刪除
string s1="hello1 hello2 hello3" int index=s1.find('l',0); while(index!=s1.npos){s1.erase(index,1);//index++;刪除之后已從下一個開始,當(dāng)前下標(biāo)值已換index=s1.find("l",index); } //全部刪除 s1.erase(s1.begin(),s1.end());完整代碼:
#include<string> #include<iostream> #include<stdlib.h> #include<algorithm> using namespace std; //string的賦值 void f1(){string s1="shihao";//靜態(tài)賦值string s2("bbbbbb");string s3(s1);//值coPystring s4(10,'a');//等價于string s4=("aaaaaaaaaa")string s5;cin>>s5;//動態(tài)輸入cout<<s1<<endl;cout<<s2<<endl;cout<<s3<<endl;cout<<s4<<endl;cout<<s5<<endl; } //string的遍歷 void f2(){string s="fanyanfutianxiadiyi";string::iterator iter;//數(shù)組方式for(int i=0;i<s.length()-1;i++){cout<<s[i]<<"";}cout<<endl;//迭代器方式for(iter=s.begin();iter!=s.end();iter++){cout<<*iter<<"";}cout<<endl; } //字符指針和string的互換 void f4(){string s1="aaabbb";cout<<s1.c_str()<<endl;//char buf[128]={0};s1.copy(buf,3,3);//拷貝三個字符,從一個字符開始cout<<"buf:"<<buf<<endl; } //字符串的連接 void f5(){//1:string s1="aaa";string s2="bbb";s1=s1+s2;cout<<"s1:"<<s1<<endl;//2string s3="fanyanfu";s3.append(s1);cout<<"s3:"<<s3<<endl; } //字符串的查找與替換 void f6(){string s1="wbm hello wbm 111 wbm 222 wbm 333";//查找 從查找位置開始第一個出現(xiàn)的下標(biāo)int index=s1.find("wbm",2);//位置從下標(biāo)0開始cout<<"index:"<<index<<endl<<endl;//統(tǒng)計出現(xiàn)wem的所有下標(biāo)int offindex=s1.find("wbm",0);while(offindex!=s1.npos){cout<<"offindex:"<<offindex<<endl;offindex++;offindex=s1.find("wbm",offindex);}//將所有的wbm換成大寫offindex=s1.find("wbm",0);while(offindex!=s1.npos){s1.replace(offindex,3,"WBM");offindex++;offindex=s1.find("wbm",offindex);}cout<<"替換結(jié)果為:"<<s1<<endl;//把a(bǔ)aa替換成大寫string s2="aaa bbb ccc";index=s2.find("aaa",0);s2.replace(index,3,"AAA");cout<<endl<<"s2:"<<s2<<endl; } //大小寫轉(zhuǎn)換 void f7(){string s1="AAAbbb";transform(s1.begin(),s1.end(),s1.begin(),toupper);cout<<"全部轉(zhuǎn)化為大寫:"<<s1<<endl;transform(s1.begin(),s1.end(),s1.begin(),tolower);cout<<"全部轉(zhuǎn)化為小寫:"<<s1<<endl; } //區(qū)間的插入與刪除 void f8(){string s1="hello1 hello2 hello1";int index=s1.find("l",0);while (index!=s1.npos){s1.erase(index,1);index=s1.find("l",index);}cout<<"刪除后的結(jié)果為:"<<s1<<endl;s1.erase(s1.begin(),s1.end());cout<<"全部刪除后的結(jié)果:"<<s1<<endl; } int main(){f4();system("pause");return 0;}總結(jié)
以上是生活随笔為你收集整理的C++中对String的各种操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++中c_str的用法
- 下一篇: C++中transform的用法