C++深入理解(13)------string类(读书笔记)

1.string类:
        一直都在用string类,但是却没系统的了解,下面就系统介绍一下。
        string的构造函数,目前存在7中,其中后两种是C++11新增的。如下图:

       下面用代码分别举例:

#include <iostream>
#include <string>

using namespace std;

int main()
{
	string One("Littery Winner!");				// 将One赋值为Littery Winner!
	string Two(20, 'S');						// 将Two赋值为20个S
	string Three(One);							// 复制构造函数,复制One
	string Four;								// 定义一个空字符串
	char alls[] = "All's well that ends well";	
	string Five(alls, 20);						// 取alls的前20个字节
	string Six(alls + 6, alls + 10);			// 取[6,10)的字符,不包括10
	string Six2(&alls[6], &alls[10]);			// 取[6,10)的字符,不包括10
	string Seven(Four, 7, 16);					// 取Four的第7个字符开始,复制16个字符到Seven

	//C++11
	string (string&& str);						// 叫做移动构造函数,将string赋值为str的副本
	string Nine = { 'A', 'B', 'C', 'D', 'E' };	// 类似于数组赋值方式
}

2. string 的最大允许长度为 string::npos。通常是最大的unsigned int值。
3. 使用字符串的其他方式:可以比较两个字符串<,==,>,可以获取字符串的长度,size()和length()。两者功能相同,length是较早版本的,size是STL兼容添加的。
4.string的find方法相关
  a.size_type find(const string& str,size_type pos=0) const :用于从位置pos开始查找str,如果找到返回出现str第一个字符的索引位置,否则返回string::npos。
  b.size_type find(const char* s,size_type pos=0) const:也是查找s,只不过是char*数组
  c.size_type find(const char* s,size_type_pos=0,size_type n):查找s的前n个字符组成的子字符串,找到返回第一个字符的索引,否则返回string::npos;
  d.size_type find(const ch,size_type pos =0) const:在pos位置查找字符ch,返回值与上边相同
还有rfind:用于超找字符串或者字符最后一次出现的位置,
       find_first_of:用于查找参数中任何一个字符首次出现的位置,如原字符串为“cobra”,int where = str.find_first_of("hark");返回3,hark是大集合,cobra是子集合,用cobra去hark中挨个比对,位置为3
5除此之外,还有替换assign,删除erase,复制copy,交换swap,比较compare,等等

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值