C++ STL string字符串详解和使用方法

头文件<string>

在这里插入图片描述在这里插入图片描述

操作

在这里插入图片描述

string操作的实参

在这里插入图片描述
在这里插入图片描述

构造函数和析构函数

在这里插入图片描述

注意

你不能以一个单字符初始化某字符串,但是可以这样做:

	string a('a');//错误
	string b(1, 'a');//正确
	string c({ 'a' });//正确

在这里插入图片描述

表示存在一个从const char* 到string的自动类型转换,但不存在一个从char到string的自动类型转换.


string和C-String

C++ STL将字符串字母常量的类型由char*改变为const char*.为了提供兼容性,还规定了可从const char*隐式转换为char*.

返回指向以’\0’结尾的不可变数组的指针

注意:

'\0'在string中并不具有特殊意义

有三个函数可以将string内容转换为字符数组或C-string:

1. c_str()data()可以得到string对应的C-string,所得到的结果和以’\0’结尾的字符数组一样

在这里插入图片描述
在这里插入图片描述

2.copy()将string内容复制到调用者提供的字符数组中,其末尾不添加'\0'字符.

在这里插入图片描述

复制[_Off, _Off + _Count) 到 [_Ptr, _Ptr + _Count)

使用例子:

int main()
{
	string b("123456");
	cout << atoi(b.data()) << endl;
	cout << atoi(b.c_str()) << endl;
	char buffer[10];
	b.copy(buffer, 10);
}

在这里插入图片描述

大小和容量

一个string存在三种"大小" :

1.size()length():返回string的现有字符数,两个函数等效

2.max_size():返回string最多能够包含的字符数。与PC本身的限制有关系,返回值一般而言是索引类型之最大值减一。

之所以减一有两个原因:1.最大值本身是npos.2.具体实现过程中有可能在内部缓冲区末尾添加一个’\0’,以便将这个string当作C-string使用。

3.capacity():重新分配内存之前,string所能包含的最大字符数.

注意

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

元素访问

有两种方法可以访问单一字符:下标操作符[]和成员函数at(),C++11还提供了front()back()用来访问第一字符和最末字符.

注意:

在这里插入图片描述

比较

在这里插入图片描述
在这里插入图片描述

更改内容

赋值

在这里插入图片描述
在这里插入图片描述

交换

在这里插入图片描述
在这里插入图片描述

清空

在这里插入图片描述

插入和移除字符

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

子字符串及字符串接合

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

i/o操作

在这里插入图片描述

getline()

在这里插入图片描述
在这里插入图片描述

搜索和查找

在这里插入图片描述
在这里插入图片描述

npos的意义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数值转换

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44800780/article/details/104211697