获取一行字符串
string s;
getline(cin,s);
字符串的拼接
c++中string对象重载了+=运算符,可以自由地进行字符串的拼接操作
string s; //创建了一个空字符串
s+="Hello ";
s+="World";
s+='5'; //可拼接char字符
s+='\n'; //换行符
s+=65; //直接拼接ascii码,65对应的字符为'A'
s+='0'+5; //对'0'的ASCII偏移指定大小,可拼接一个数字字符
cout<<s<<endl;
输出结果:
Hello World5
A5
字符串排序(使用stl中的algorithm)
string s="293847102";
sort(s.begin(),s.end());
cout<<s<<endl;
输出结果:
012234789
erase函数
删除首字符
string s="293847102";
s.erase(s.begin()); //删除0号字符
cout<<s;
运行结果:
93847102
删除n号字符(以下代码示例删除3号索引字符)
string s="293847102";
s.erase(s.begin()+3);
cout<<s;
运行结果:
29347102
删除尾字符
string s="293847102";
s.erase(s.end()-1); //end()指向字符串最后一个字符的下一个字符'\0'
cout<<s;
输出结果:
29384710
字符串截取函数substr
s.substr(起始位置,截取长度)
代码如下,
string s="HelloWorld";
s=s.substr(0,5);
cout<<s;
运行结果:
Hello
若截取长度<0,则直接从起始位置截取到字符串末尾
string s="HelloWorld";
s=s.substr(5,-1);
cout<<s;
运行结果:
World
获取指定索引的字符
c++的string对象重载了[n]运算符,可以直接像数组那样取元素
string s="HelloWorld";
cout<<s[0]<<s[2]<<s[4];
运行结果:
Hlo
遍历字符串
string s = "HelloWorld";
cout<<"普通循环遍历"<<endl;
for(int i=0;i<s.length();i++){
cout<<s[i];
}
cout << "迭代器遍历" << endl;
for (string::iterator it = s.begin(); it != s.end(); it++) {
cout << *it;
}
cout <<endl<< "通过auto关键字自动类型推导使用迭代器遍历" << endl;
for (auto it = s.begin(); it != s.end(); it++) {
cout << *it;
}
cout<<endl<<"while循环代替for循环"<<endl;
string::iterator it = s.begin();
while(it!=s.end()){
cout<<*it;
it++;
}
cout<<endl<<"foreach循环遍历"<<endl;
for(auto it : s){
cout<<it;
}
运行结果:
普通循环遍历
HelloWorld
迭代器遍历
HelloWorld
通过auto关键字自动类型推导使用迭代器遍历
HelloWorld
While循环代替for循环
HelloWorld
foreach循环遍历
HelloWorld