===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类相关推荐

  1. JavaSE学习总结(八)常用类(上)Object类==与equals方法的区别浅克隆的特点Scanner类String类String两种创建对象方式的区别String类的各种功能

    JavaSE学习总结(八)常用类(上)/Object类/==与equals方法的区别/浅克隆的特点/Scanner类/String类/String两种创建对象方式的区别/String类的各种功能 常用 ...

  2. Java基础---API概述---常用类(Object类/String类)---equals和==

    API概述 API:application programming interface,应用程序编程接口 用于规定方法名称的规则集合,定义了方法的修饰符.返回值类型.方法的名称.方法的参数列表.方法的 ...

  3. C++运算符重载典型习题---复数类 String类 分数类

    一.复数类(Complex class) complex.cpp: /***************************************************** copyright ( ...

  4. 面试题——————不可变类String类

    最近看到二哥的一篇文章,对于如何做好一件事情深有感触,自己阅读完也总结了下面这句话分别是:不断学习,不断思考,不断实践.基础知识有了扎实了,下面要做的就是深入.人往高处走嘛! String类相信大家并 ...

  5. 常用类-String类

    一.String类的理解 String类:位于java.lang 包中,被fifinal修饰,没有子类 二.获取字符串的两种常见方式 1.String str1 = "hello" ...

  6. Java常用接口与类——String类、StringBuffer类、StringBuilder类

    >String的构造方式 //这两种方式字符串的值是相同的,但在内存中的地址不同: //s1是在常量池中,常量池中有一个hello,同一常量只会放入一次: String s1="hel ...

  7. Object类 Integer类 Character类 Float类 String类------中的 hashCode() 方法 与 equals(Object obj) 方法的实现的探讨

    hashCode方法 与 equals 方法 Object中的: hashCode() equals() Integer中的 hashCode() equals() Character中的 hashC ...

  8. java常用类-----String类的源码分析、可变和不可变序列

    package cn.zxg.PackgeUse; /** * 测试StringBuilder,StringBuffer可变字符序列 */ public class TestStringBuilder ...

  9. 【C++要笑着学】编码的由来 | basic_string模板类 | string类的常用接口讲解 | 学会查文档

      ​​​​​​ 

最新文章

  1. java $.class_java文件编译后额外生成的$1.class是怎么一回事
  2. 小米摄像头有onvif协议_监控摄像头完好但图像不行,肯定逃不过这10个问题
  3. 架构专家高磊:缓存为王——无线缓存架构优化
  4. Android组件系列-----Activity保存状态
  5. Drcom账户管理Server端解说
  6. 挂载、卸载、free查看内存情况、创建交换分区、回环设备、dd命令、自动挂载、fuser...
  7. Error: Could not open connection to jdbc:hive2://master:10000: java.net.ConnectException: Connection
  8. 关于指针的一些基本常识
  9. 掌握Android阅读源码的两种简单方式
  10. 如何把JSON对象转为map对象
  11. 常见的Java框架有哪些?
  12. ARP报文目的MAC为什么不是广播地址?
  13. 快速简单的方法,彻底解决新浪微博自动关注营销号的问题
  14. ZZNU 2125:A + B 普拉斯(傻逼题+大数加法)
  15. LXR( Linux超文本交叉代码检索工具)
  16. C#获取企业微信打卡数据
  17. 对接支付宝单笔转账接口
  18. 玩机搞机---全网最详细的手机全机型 刷机教程 二
  19. Linux df命令怎么使用
  20. linux个人网站制作教程,用LaTeX制作个人简历

热门文章

  1. hibernate.cfg.xml详细配置
  2. C语言运算符的优先级
  3. Java泛型进阶 - 如何取出泛型类型参数
  4. Caused by: org.xml.sax.SAXParseException: 不允许有匹配 [xX][mM][lL] 的处理指令目标。
  5. 36.intellij idea 如何一键清除所有断点
  6. iOS 解决1。返回时的黑边问题、2。controller的抖动问题
  7. Android Broadcast Receiver
  8. ActiveMQ 消息服务(一)
  9. jQuery学习笔记一
  10. editplus 3 注册码