最近使用C++编写了一些小东西,发现自己在string方面比较差,今天总结一下。
## string对象的定义和初始化
string类型支持长度可变的字符串,对于string的使用:#include using std::string
- string s1; 默认构造函数,s1为空串
- string s2(s1) 将s2初始化为s1的副本
- string s3("value") 将s3初始化为字符串字面值副本
- string s4(n,'c') 将s4初始化为字符'c'的n个副本
批注:利用getline读取文本的整行,getline(输入流,string对象)
## string 对象的操作
- s.empty() 如果s为空串,则返回true,否则返回false
- s.size() 返回s中字符的个数
- s[n] 返回s位置为n的字符,位置从0开始计数
- s1+s2 将s1和s2连接成一个新的字符串,并且返回新生成的字符串
- v1==v2 比较v1和v2的内容,相等则返回true,否则返回false
- !=,<,<=,>,>= 保持惯有的含义
批注:在size()中返回的是,string::size_type类型;
## 构造string对象的其他方法 对于string类几乎支持所有的构造函数,除了带有单个容器长度最为参数的构造函数
- string s(cp,n) 创建一个string对象,它被初始化为cp所指向数组的前n个副本
- string s(s2,pos2) 创建一个string对象,它被初始化为一个已经存在的
- string s1(s2,pos,len) 创建一个string的对象,它被初始化为s2中从下表为pos开始的len个字符的副本
## 修改string对象的方法 1、insert() :在string中插入值
2、assign() :用于替换string的值
3、erase() :删除string
4、substr() :截取string部分字段
5、append() : 在string后面添加值
6、replace() :替换string的值
7、find() : 查找字符[串]第一次出现的下标
8、rfind() : 查找字符[串]最后一次出现的下标
9、find_first_of(args) : 查找args中任意字符的第一次出现
10、find_last_of(args) : 查找args中任意字符的最后一次出现
11、find_first_not_of(args) : 查找第一个不属于args的字符
12、find_last_not_of(args) : 查找最后一个不属于args的字符
13、compare() : 比较两个string类型的对象
学习两三点:
在C++中将string类型转化成为int
1、使用函数 atoi(const char *ptr )
--- 扫描参数ptr字符串,检测到第一个数字或正负号时开始做类型转换,之后检测非数字或结束符号\0 时停止转换,返回整型
需要头文件:#include
2、使用stringstream;
eg: stringstream ss;
string str="12345";
int val;
ss<
str>>val;
3、使用boost中的函数:lexical_cast(var)
eg: int val = boost::lexical_cast(string("123"));
阅读(3449) | 评论(0) | 转发(1) |