C++的string二三事
来源:互联网 发布:淘宝店铺logo尺寸大小 编辑:程序博客网 时间:2024/04/28 02:31
原文:http://blog.tianya.cn/post-5953305-104981427-1.shtml
最近使用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"));
0 0
- C++string的使用
- C/C++——*string++、*++string、++*string的区别
- [C#] String与string的区别
- [C#] String与string的区别
- C#] String与string的区别
- C string 与C++ string的区别
- C#lock 的string String.Intern 方法
- (C#) “神奇”的String (1)
- [C++]String类的实现
- C++string的一个示例
- C++string类的方法
- [C++]String类的实现
- 关于C#string的类型
- [C++]String类的实现
- c-style string 的区别
- C string类型的用法
- C++String类的实现
- 【c++】string类的实现
- 学习数据库的感受
- spring自定义异常
- Codevs_P1021 热浪(Dijkatra)
- IntelliJ IDEA 使用笔记
- [c++ 温故知新]类内char* 指针内存分配长度
- C++的string二三事
- [Canvas绘图] 第26节 生成表格
- Vivado中用HDL定义BRAM存储器并用updatemem合成bit文件
- 正则表达式
- 1010: [HNOI2008]玩具装箱toy
- 性格对咱的影响
- #pragma 预处理指令详解
- bzoj2034[2009国家集训队]最大收益
- Spring AOP 应用 - 打印 Action (Controller )层的日志信息