string基本字符系列容器(一)
来源:互联网 发布:类似灵魂摆渡的网络剧 编辑:程序博客网 时间:2024/06/11 01:55
C++STL提供了string基本字符系列容器来处理字符串,可以把string理解成字符串类,它提供了添加,删除,替换,查找和比较等丰富的方法。
使用string容器,需要头文件包含声明#include<string>。
创建string对象
创建一个字符串对象s,s是一个空字符串,长度为0.
#include<string>#include<iostream>using namespace std;int main(){string s;cout<<s.length()<<endl;return 0;}
给string对象赋值
(1)直接给字符串对象赋值
#include<string>#include<iostream>using namespace std;int main(){string s = "Hello C++STL";cout<<s<<endl;return 0;}
(2)把字符指针赋给一个字符串对象
#include<string>#include<iostream>using namespace std;int main(){char c[] = "Hello C++STL";string s = c; //将字符指针赋给一个字符串对象 cout<<s<<endl;return 0;}
从string对象尾部添加字符和字符串
(1)采用”+“操作符,可以在string对象的尾部添加字符或者字符串
#include<string>#include<iostream>using namespace std;int main(){string s = "Hello ";s = s+'c'+'+'+'+'+"STL";cout<<s<<endl;return 0;}
(2)还可以使用append方法在string对象的尾部添加字符串(不适用于字符)
#include<string>#include<iostream>using namespace std;int main(){string s = "Hello ";s.append("C++STL");cout<<s<<endl;return 0;}
给string对象插入字符
可以使用insert方法把一个字符插入到迭代器之前(并不适用于字符串)
#include<string>#include<iostream>using namespace std;int main(){string s = "abcde";string::iterator it = s.begin();s.insert(it+2,'i');cout<<s<<endl;return 0;}
访问string对象的元素
一般使用下标方式随机访问string对象的元素,下标是从0开始计数的,string对象的元素是一个字符(char)
当然也可以使用迭代器进行访问,但是string的迭代器一般不用来访问元素,而是对其中的元素进行删除,插入和替换操作的时候作为参数。
#include<string>#include<iostream>using namespace std;int main(){string s = "abcde";cout<<s[2]<<endl;return 0;}
输出字符c
删除string对象的元素
(1)清空一个字符串,则直接赋给它一个空字符串即可。
(2)使用erase()方法删除迭代器所指的那个元素或一个区间中的所有元素
#include<string>#include<iostream>using namespace std;int main(){string s = "abcdefgh";string::iterator it = s.begin();s.erase(it+3);cout<<s<<endl;s.erase(it+2,it+5);cout<<s<<endl;s = "";cout<<"length:"<<s.length()<<endl;cout<<"empty:"<<s.empty()<<endl;return 0;}
输出结果:
abcefgh
abgh
length:0
empty:1
返回string对象的长度
采用length()或者size()方法可以获取string对象的长度(字符的个数),而empty()方法可以用来判断string对象是否为空,为空则返回1,不为空则返回0.
#include<string>#include<iostream>using namespace std;int main(){string s = "abcdefgh";cout<<"length:"<<s.length()<<endl;cout<<"size:"<<s.size()<<endl;cout<<"empty:"<<s.empty()<<endl;s = "";cout<<"empty:"<<s.empty()<<endl;return 0;}
替换string对象的字符
使用replace()方法可以很方便的替换string对象中的字符,常用是使用三个参数,第一个是要替换的字符的开始下标,第二个是要替换的字符的个数,第三个是用于替换的字符串。
#include<string>#include<iostream>using namespace std;int main(){string s = "abcdefgh";s.replace(1,3,"xy");cout<<s<<endl;return 0;}
输出结果:axyefgh
搜索string对象的元素或子串
采用find()方法可查找字符串中的第一个字符元素(char,用单引号界定)或者子串(用双引号界定),如果查到则返回下标值(从0开始计数),如果查不到,则返回string::npos
#include<string>#include<iostream>using namespace std;int main(){string s = "ab cdefgh";if(s.find(' '))cout<<"字符空格在string中出现"<<endl;if(s.find("def"))cout<<"字符串def在string中出现"<<endl;if(s.find("qianshou")==string::npos)cout<<"字符串qianshou没有在string中出现"<<endl;return 0;}
程序输出结果:
字符空格在string中出现
字符串def在string中出现
字符串qianshou没有在string中出现
string对象的比较
可以直接使用‘>'和‘<'对两个string对象进行比较,结果为TRUE或者FALSE;还可以使用compare方法与其他字符串比较,如果它比对方大则返回1,如果它比对象小则返回-1,如果相等则返回0.
#include<string>#include<iostream>using namespace std;int main(){string s1 = "123";string s2 = "234";if(s1>"111")cout<<s1<<">"<<"111"<<endl;if(s1<s2)cout<<s1<<"<"<<s2<<endl;cout<<s1.compare("111")<<endl;cout<<s1.compare(s2)<<endl;return 0;}
输出结果为:
123>111
123<234
1
-1
使用reverse反响排序string对象
使用reverse()方法可以将string对象迭代器所指向的一段区间中的元素(字符)反向排序。reverse()方法需要声明头文件#include<algorithm>
#include<algorithm>#include<string>#include<iostream>using namespace std;int main(){string s = "a9b2c7";reverse(s.begin(),s.end());cout<<s<<endl; return 0;}
输出结果:
7c2b9a
- string基本字符系列容器(一)
- string基本字符系列容器(二)
- string基本字符系列容器
- String基本字符系列容器
- string基本字符系列容器
- string基本字符系列容器
- STL string基本字符系列容器
- C_串----基本string字符系列容器
- string基本字符容器
- string基本字符容器
- string基本字符序列容器
- string 基本字符序列容器
- STL(十七)string基本字符序列容器
- ACM学习历程9——string基本字符系列容器
- STL容器(一) 基本序列容器
- Python系列(一)转义字符
- C++基本操作(一):string
- Delphi奇技淫巧(一)string系列
- Android 导入工程注意事项
- 北邮新OJ89
- C语言中的指针错误——不能把不匹配的数据类型 赋给指针变量
- 发布iOS应用到App Store详解
- 使用栈解决迷宫问题(不是最优路径)php
- string基本字符系列容器(一)
- 面对Android的衰落,路在何方?
- SSH 信任关系建立
- 第07周:项目二:体验深复制函数
- 人生无非是让别人笑笑自己,再笑笑别人。
- 【亲测可用】Qt4.8.5+QtCreator2.8.0傻瓜安装...
- 互联网的世界安全吗?且行且珍惜
- 游戏逆向
- 手机与电脑 socket通信