C++ 经常使用类 string类
===6.3.2使用string对象===
string word="I love China"
*链接字符串*
string description=adjective + " " + word;
_Note_: 不能连接两个字符串字面量,以下的语句是错误的
string test= "I have" + "a dream";
===6.3.3訪问字符串中的字符===
*读取字符串*
getline(cin, text);
getline(cin, text, '#')_;
word[index];
===6.3.4訪问子字符串===
* substr(index0, length);
string phrase = "the higher the fewer";
string wold= phrase.substr(4,6 );
===6.3.5比較字符串===
*操作符*
> >= < !=
*compare()*
world.compare("end");
word.compare(2, 4, "end");
===6.3.6搜索字符串:find===
string sentence = "Manners maketh man";
int a= sentence.find("man");
int b= sentence.find("man", index);//从index開始搜索
假设没有找到。返回~~string:npos~~
*搜索字符集*
string separeators= " ,.\"";
sentence.find_first_of(separeators);
sentence.find_last_of(separeators);
sentence.find_last_not_of(separeators);
sentence.find_first_not_of(separeators);
*逆向搜索*
sentence.rfind("man");
===6.3.7改动字符串:insert、replace、erase===
*1.insert*
_`mystring.insert(index, anotherstring)`
sentence.insert(13, world, 8, 5);//从index=8開始之后的5个字符
把几个同样字符串插入到string对象中:sentence.insert(index,times, string);
*2.replace*
将从index開始的num个字符,替换成新的string:sentence.replace(index, num, string);
*3.erase*
删除从index開始的num个字符:sentence.erase(index, num);
===6.3.8注意事项===
1) append函数与char 和char*
append函数的原型例如以下:
string& append (const string& str);string& append (const string& str, size_t subpos, size_t sublen);string& append (const char* s);string& append (const char* s, size_t n);string& append (size_t n, char c);
注意。char* 和char用作append的參数时候。比如,想在string尾部添加一个字符,须要用mystring.append(1, ch) 而不是mystring.apend(ch). 相同。想将chars的当中一部分插入string中。须要用mystring.append(s+a, b-a)
注意,假设只想添加一个字符。使用push_back就可以
string 具体解释
1.*string constructor*
default (1) string();
copy (2) string (const string& str);
substring (3) string (const string& str, size_t pos, size_t len = npos);
from c-string (4) string (const char* s);
from buffer (5) string (const char* s, size_t n);
fill (6) string (size_t n, char c);
range (7) template <class InputIterator>
string (InputIterator first, InputIterator last);
// string constructor
#include <iostream>
#include <string>int main ()
{std::string s0 ("Initial string");// constructors used in the same order as described above:std::string s1;std::string s2 (s0);std::string s3 (s0, 8, 3);std::string s4 ("A character sequence", 6);std::string s5 ("Another character sequence");std::string s6 (10, 'x');std::string s7a (10, 42); // 42 is the ASCII code for '*'std::string s7b (s0.begin(), s0.begin()+7);std::cout << "s1: " << s1 << "\ns2: " << s2 << "\ns3: " << s3;std::cout << "\ns4: " << s4 << "\ns5: " << s5 << "\ns6: " << s6;std::cout << "\ns7a: " << s7a << "\ns7b: " << s7b << '\n';return 0;
}
**output**:
s1:
s2: Initial string
s3: str
s4: A char
s5: Another character sequence
s6: xxxxxxxxxx
s7a: **********
s7b: Initial
2.迭代器:
begin();
end();
3.capacity:
size();
length();
clear();
empty();
4.Element Access:
operator[]
at()
back();
front();
5.Modifier
operator+=
append()
push_back()
assign()
insert()
erase()
replcace();
swap();
pop_back();
6.String Operations:
copy();
find();
find_first_of();
find_last_of();
find_first_not_of();
find_last_not_of();
substr();
compare();
7.Member constants:
npos
8.Non-member function overloads:
getline();
C++ 经常使用类 string类相关推荐
- JavaSE学习总结(八)常用类(上)Object类==与equals方法的区别浅克隆的特点Scanner类String类String两种创建对象方式的区别String类的各种功能
JavaSE学习总结(八)常用类(上)/Object类/==与equals方法的区别/浅克隆的特点/Scanner类/String类/String两种创建对象方式的区别/String类的各种功能 常用 ...
- Java基础---API概述---常用类(Object类/String类)---equals和==
API概述 API:application programming interface,应用程序编程接口 用于规定方法名称的规则集合,定义了方法的修饰符.返回值类型.方法的名称.方法的参数列表.方法的 ...
- C++运算符重载典型习题---复数类 String类 分数类
一.复数类(Complex class) complex.cpp: /***************************************************** copyright ( ...
- 面试题——————不可变类String类
最近看到二哥的一篇文章,对于如何做好一件事情深有感触,自己阅读完也总结了下面这句话分别是:不断学习,不断思考,不断实践.基础知识有了扎实了,下面要做的就是深入.人往高处走嘛! String类相信大家并 ...
- 常用类-String类
一.String类的理解 String类:位于java.lang 包中,被fifinal修饰,没有子类 二.获取字符串的两种常见方式 1.String str1 = "hello" ...
- Java常用接口与类——String类、StringBuffer类、StringBuilder类
>String的构造方式 //这两种方式字符串的值是相同的,但在内存中的地址不同: //s1是在常量池中,常量池中有一个hello,同一常量只会放入一次: String s1="hel ...
- Object类 Integer类 Character类 Float类 String类------中的 hashCode() 方法 与 equals(Object obj) 方法的实现的探讨
hashCode方法 与 equals 方法 Object中的: hashCode() equals() Integer中的 hashCode() equals() Character中的 hashC ...
- java常用类-----String类的源码分析、可变和不可变序列
package cn.zxg.PackgeUse; /** * 测试StringBuilder,StringBuffer可变字符序列 */ public class TestStringBuilder ...
- 【C++要笑着学】编码的由来 | basic_string模板类 | string类的常用接口讲解 | 学会查文档
最新文章
- java $.class_java文件编译后额外生成的$1.class是怎么一回事
- 小米摄像头有onvif协议_监控摄像头完好但图像不行,肯定逃不过这10个问题
- 架构专家高磊:缓存为王——无线缓存架构优化
- Android组件系列-----Activity保存状态
- Drcom账户管理Server端解说
- 挂载、卸载、free查看内存情况、创建交换分区、回环设备、dd命令、自动挂载、fuser...
- Error: Could not open connection to jdbc:hive2://master:10000: java.net.ConnectException: Connection
- 关于指针的一些基本常识
- 掌握Android阅读源码的两种简单方式
- 如何把JSON对象转为map对象
- 常见的Java框架有哪些?
- ARP报文目的MAC为什么不是广播地址?
- 快速简单的方法,彻底解决新浪微博自动关注营销号的问题
- ZZNU 2125:A + B 普拉斯(傻逼题+大数加法)
- LXR( Linux超文本交叉代码检索工具)
- C#获取企业微信打卡数据
- 对接支付宝单笔转账接口
- 玩机搞机---全网最详细的手机全机型 刷机教程 二
- Linux df命令怎么使用
- linux个人网站制作教程,用LaTeX制作个人简历
热门文章
- hibernate.cfg.xml详细配置
- C语言运算符的优先级
- Java泛型进阶 - 如何取出泛型类型参数
- Caused by: org.xml.sax.SAXParseException: 不允许有匹配 [xX][mM][lL] 的处理指令目标。
- 36.intellij idea 如何一键清除所有断点
- iOS 解决1。返回时的黑边问题、2。controller的抖动问题
- Android Broadcast Receiver
- ActiveMQ 消息服务(一)
- jQuery学习笔记一
- editplus 3 注册码