C++ STL string常用函数

合集下载

c语言string()的用法

c语言string()的用法

C语言string()的用法1.简介在C语言中,字符串是一系列字符的集合,常用的字符串操作包括拷贝、连接、长度计算等。

C语言提供了一系列的库函数来方便地操作字符串,其中`s tr in g()`函数是一个重要的函数之一。

本文将详细介绍`s tr in g()`函数的用法及示例。

2.函数概述`s tr in g()`函数用于对字符串进行各种操作,包括拷贝、连接、比较等。

其函数原型如下:#i nc lu de<s tr in g.h>c h ar*s tr in g(ch ar*d es t,co ns tc ha r*s r c);其中,`de st`表示目标字符串的指针,`s rc`表示源字符串的指针。

该函数将源字符串中的内容复制到目标字符串中,并返回目标字符串的指针。

3.示例下面通过几个示例来演示`s tr in g()`函数的使用方法。

3.1字符串拷贝字符串拷贝是`s tr in g()`函数最常用的功能之一。

示例代码如下:#i nc lu de<s td io.h>#i nc lu de<s tr in g.h>i n tm ai n(){c h ar so ur ce[]="Hel l o,Wo rl d!";c h ar de st in at io n[20];//使用st r i ng()函数进行字符串拷贝s t ri ng(d es ti na tio n,s ou rc e);p r in tf("拷贝后的字符串:%s\n",de st i na ti on);r e tu rn0;}输出结果为:拷贝后的字符串:He l lo,W or ld!3.2字符串连接`s tr in g()`函数还可以用于字符串的连接。

示例代码如下:#i nc lu de<s td io.h>#i nc lu de<s tr in g.h>i n tm ai n(){c h ar st r1[50]="Hel l o";c h ar st r2[]="Wo rld!";//使用st ri ng()函数进行字符串连接s t ri ng(s tr1,st r1);s t ri ng(s tr1,st r2);p r in tf("连接后的字符串:%s\n",st r1);r e tu rn0;}输出结果为:连接后的字符串:He l lo Wo rl d!3.3字符串比较`s tr in g()`函数还可以用于字符串的比较操作。

stl string常用函数

stl string常用函数

STL String常用函数STL String是C++中的一个非常重要的字符串类,它提供了许多函数来处理字符串。

在这篇文章中,我们将介绍STL String的常用函数,包括字符串的创建、修改、查找和比较等。

一、创建字符串1.构造函数STL String有多种构造函数,可以用来创建字符串。

其中,最常用的构造函数是默认构造函数,它创建一个空字符串:```c++string str; //创建一个空字符串```还可以使用其他构造函数来创建字符串,如:```c++string str1("Hello"); //使用字符串字面值创建字符串string str2(str1); //使用另一个字符串创建字符串string str3(5, 'A'); //创建一个包含5个'A'字符的字符串```2.赋值函数STL String还提供了多种赋值函数,可以用来将一个字符串赋值给另一个字符串。

其中,最常用的赋值函数是赋值运算符:```c++string str1 = "Hello";string str2 = str1;```还可以使用其他赋值函数,如:```c++string str3;str3.assign("Hello"); //将字符串字面值赋值给字符串str3.assign(str1); //将另一个字符串赋值给字符串str3.assign(5, 'A'); //将5个'A'字符赋值给字符串```二、修改字符串1.插入函数STL String提供了多种插入函数,可以用来在字符串中插入字符或子字符串。

其中,最常用的插入函数是insert()函数:```c++string str = "Hello";str.insert(1, "i"); //在第1个字符位置插入字符"i"```还可以使用其他插入函数,如:```c++string str1 = "Hello";str1.insert(1, "i", 1); //在第1个字符位置插入字符"i"的第1个字符str1.insert(1, 3, 'A'); //在第1个字符位置插入3个'A'字符str1.insert(str1.begin() + 1, 'i'); //在第1个字符位置插入字符"i"str1.insert(str1.begin() + 1, str); //在第1个字符位置插入另一个字符串str1.insert(str1.begin() + 1, str.begin(), str.end());//在第1个字符位置插入另一个字符串的一部分```2.删除函数STL String提供了多种删除函数,可以用来删除字符串中的字符或子字符串。

STL String 非常详细有用

STL String 非常详细有用

STL String 非常详细1 前言: string 的角色2 string 使用2.1 充分使用string 操作符2.2 眼花缭乱的string find 函数2.3 string insert, replace, erase3 string 和C风格字符串4 string 和Charactor Traits5 string 建议6 小结7 附录8 参考文章前言: string 的角色C++ 语言是个十分优秀的语言,但优秀并不表示完美。

还是有许多人不愿意使用C 或者C++,为什么?原因众多,其中之一就是C/C++的文本处理功能太麻烦,用起来很不方便。

以前没有接触过其他语言时,每当别人这么说,我总是不屑一顾,认为他们根本就没有领会C++的精华,或者不太懂C++,现在我接触perl, php, 和Shell脚本以后,开始理解了以前为什么有人说C++文本处理不方便了。

举例来说,如果文本格式是:用户名电话号码,文件名name.txtTom 23245332Jenny 22231231Heny 22183942Tom 23245332...现在我们需要对用户名排序,且只输出不同的姓名。

那么在shell 编程中,可以这样用:awk '{print $1}' name.txt | sort | uniq简单吧?如果使用C/C++ 就麻烦了,他需要做以下工作:1. 先打开文件,检测文件是否打开,如果失败,则退出。

2. 声明一个足够大得二维字符数组或者一个字符指针数组3. 读入一行到字符空间4. 然后分析一行的结构,找到空格,存入字符数组中。

5. 关闭文件6. 写一个排序函数,或者使用写一个比较函数,使用qsort排序7. 遍历数组,比较是否有相同的,如果有,则要删除,copy...8. 输出信息你可以用C++或者C语言去实现这个流程。

如果一个人的主要工作就是处理这种类似的文本(例如做apache的日志统计和分析),你说他会喜欢C/C++么?当然,有了STL,这些处理会得到很大的简化。

标准C++库string及STL相关函数

标准C++库string及STL相关函数
管理成员函数只有:empty(),size(),front(),back(),push(),pop()
七.关联式容器:
集合类std::set,
多重集合类std::multiset,
映射类std::map,
多重映射类std::multimap,
位集合std::bitset
八.通用算法(对以上STL均适用)
reserve 预留空间
swap 交换函数
insert 插入字符
append 追加字符
push_back 追加字符
erase 删除字符串
clear 清空字符容器中所有内容
resize 重新分配空间
assign 和赋值操作符一样
replace 替代
copy 字符串到空间
find 查找,返回基于0的索引号
rfind 反向查找
find_first_of 查找包含子串中的任何字符,返回第一个位置
find_first_not_of 查找不包含子串中的任何字符,返回第一个位置
#include<algorithm>
1.非修正序列算法:
2.修正序列算法:
3.排序算法:
4.数值算法:
九.迭代器(类似指针的功能,对容器的内容进行访问)
#include<iterator>
例如:
std::vector<int> IntVector;
std::vector<int>::iterator first=IntVector.begin();
std::list<type> name(size,value);

string常用函数

string常用函数

string常用函数Introduction:string是C++中常见的字符串类型,它提供了许多用于操作字符串的函数。

在本篇文章中,我们将介绍一些常用的string函数,这些函数会对我们的日常编程工作产生很大的帮助。

Body:1.length()length()函数用于获取字符串的长度,其形式为string.length()。

它返回一个整数,表示该字符串的字符个数。

例如:string str = "hello world";int len = str.length();在上述例子中,len的值为11,因为"hello world"这个字符串共有11个字符。

2.substr()substr()函数用于从字符串中获取子串,其形式为string.substr(pos, len),其中pos表示子串的起始位置,len表示子串的长度。

例如:string str = "hello world";string sub_str = str.substr(6, 5);在上述例子中,sub_str的值为"world"(从6开始,长度为5),即为原字符串中从第7个字符开始的5个字符。

3.find()find()函数用于查找子串在字符串中的位置,其形式为string.find(substr, pos),其中substr表示要查找的子串,pos表示查找的起始位置(默认值为0)。

例如:string str = "hello world";int pos = str.find("world");// pos的值为6在上述例子中,pos的值为6,表示"world"这个子串在字符串中的位置为第7个字符。

4.replace()replace()函数用于替换字符串中的子串,其形式为string.replace(pos, len, substr),其中pos表示要替换的起始位置,len表示要替换的子串的长度,substr表示替换后的子串。

string的几种构造函数

string的几种构造函数

string的几种构造函数在编程中,字符串(string)是一种非常常用的数据类型,用于存储和操作文本。

在C++语言中,string类是用来表示和操作字符串的类。

string类提供了多个构造函数,用于创建字符串对象。

本文将介绍string的几种构造函数,并详细解释它们的用法。

1. 默认构造函数string类的默认构造函数创建一个空的字符串对象。

空字符串是一个长度为0的字符串,不包含任何字符。

我们可以使用以下语法来创建一个空字符串对象:string str;2. 字符数组构造函数string类还提供了一个构造函数,可以使用字符数组来创建字符串对象。

字符数组是一系列字符的集合,以null字符('\0')结尾。

我们可以使用以下语法来创建一个字符串对象:char arr[] = "Hello";string str(arr);这样,str将包含字符数组arr中的所有字符,并以null字符结尾。

需要注意的是,字符数组的长度必须小于或等于字符串对象的最大长度。

3. 字符串构造函数除了字符数组,我们还可以使用另一个字符串来创建字符串对象。

string类提供了一个接受另一个字符串作为参数的构造函数。

我们可以使用以下语法来创建一个字符串对象:string str1 = "Hello";string str2(str1);这样,str2将包含与str1相同的内容。

这个构造函数会创建一个新的字符串对象,而不是简单地将str2指向str1。

4. 子字符串构造函数string类还提供了一个构造函数,可以使用另一个字符串的一部分来创建一个新的字符串对象。

我们可以使用以下语法来创建一个子字符串对象:string str1 = "Hello World";string str2(str1, 0, 5);这样,str2将包含str1中从索引0开始的5个字符,即"Hello"。

string标准库函数

string标准库函数

string标准库函数在C++中,std::string库提供了许多用于处理字符串的函数。

以下是一些常用的函数:1、构造函数:std::string(): 默认构造函数,创建一个空字符串。

std::string(const char*): 从C风格的字符串创建字符串。

std::string(const std::string&): 复制构造函数。

2、赋值操作:operator=: 赋值操作符。

3、访问和修改:at(int n): 访问指定位置的字符。

operator[] 或 operator(): 访问或修改指定位置的字符。

front(): 返回第一个字符。

back(): 返回最后一个字符。

c_str(): 返回指向一个C风格的字符串的指针。

4、长度和容量:size(): 返回字符串的长度。

max_size(): 返回字符串的最大可能长度。

empty(): 检查字符串是否为空。

5、插入和删除:insert(int pos, const std::string& str): 在指定位置插入字符串。

erase(int pos, int len): 删除指定位置和长度的字符。

6、连接:operator+: 连接两个字符串。

append(const std::string& str): 在末尾添加字符串。

7、比较:operator==, operator!=, <, >, <=, >=: 比较两个字符串。

8、查找:find(char c, int pos): 查找字符的位置。

find(const std::string& str, int pos): 查找字符串的位置。

9、修改:replace(int pos, int len, const std::string& str): 在指定位置和长度处替换字符串。

10、分割和合并:split(char delimiter): 根据给定的分隔符分割字符串。

c语言string类的常用方法

c语言string类的常用方法

c语言string类的常用方法在C语言中,字符串通常表示为字符数组,而不是像C++中的`std::string`类。

但我们可以使用一些函数来处理字符串,这些函数在``库中定义。

以下是C语言中处理字符串的一些常用方法:1. `strlen()`: 返回字符串的长度,不包括终止字符'\0'。

```csize_t len = strlen("Hello"); // len 为 5```2. `strcpy()`: 将一个字符串复制到另一个字符串。

```cchar src[] = "Hello";char dest[10];strcpy(dest, src); // dest 现在是 "Hello"```3. `strcat()`: 将一个字符串连接到另一个字符串的末尾。

```cchar src1[] = "Hello";char src2[] = ", World!";strcat(src1, src2); // src1 现在为 "Hello, World!" ```4. `strcmp()`: 比较两个字符串。

```cchar str1[] = "Hello";char str2[] = "World";if (strcmp(str1, str2) < 0) {printf("str1 is less than str2\n");} else if (strcmp(str1, str2) > 0) {printf("str1 is greater than str2\n");} else {printf("str1 is equal to str2\n");}```5. `strstr()`: 在字符串中查找子字符串。

c语言中string用法

c语言中string用法

c语言中string用法C语言中string的用法在C语言中,string是一个用来存储字符序列的数据类型。

在C语言中并没有内置的string类型,而是通过字符数组来表示字符串。

下面是关于C语言中string 的一些常见用法:1. 字符串声明和初始化要声明一个字符串变量,可以使用字符数组来表示。

例如:```cchar str[20]; // 声明一个可以容纳20个字符的字符串char str[] = "Hello"; // 声明并初始化一个包含字符串"Hello"的字符串```2. 字符串赋值可以使用strcpy函数来将一个字符串赋值给另一个字符串。

例如:```cchar str1[20];char str2[] = "Hello";strcpy(str1, str2); // 将str2复制到str1中```3. 字符串连接可以使用strcat函数来连接两个字符串。

例如:char str1[20] = "Hello";char str2[] = "World";strcat(str1, str2); // 将str2连接到str1的末尾```4. 字符串长度可以使用strlen函数来获取一个字符串的长度。

例如:```cchar str[] = "Hello";int length = strlen(str); // 获取字符串的长度```5. 字符串比较可以使用strcmp函数来比较两个字符串是否相同。

例如:```cchar str1[] = "Hello";char str2[] = "World";int result = strcmp(str1, str2); // 比较str1和str2是否相同,返回0表示相同```6. 字符串截取可以使用strncpy函数来从一个字符串中截取指定长度的子字符串。

string函数的用法

string函数的用法

string函数的用法string函数是C++中常用的字符串处理函数,它可以对字符串进行各种操作,如拼接、查找、替换等。

下面介绍一些常用的string函数的用法。

1. string的定义和初始化定义string变量时,需要包含头文件<string>,可以使用以下两种方式进行初始化:string str1; //定义一个空字符串string str2 = "hello world"; //定义并初始化一个字符串2. string的拼接使用“+”运算符可以将两个字符串拼接起来,例如:string str1 = "hello";string str2 = "world";string str3 = str1 + " " + str2; //拼接后的字符串为"hello world"3. string的查找使用find函数可以查找字符串中是否包含某个子串,如果包含则返回子串在字符串中的位置,否则返回string::npos。

例如:string str = "hello world";int pos = str.find("world"); //pos的值为64. string的替换使用replace函数可以将字符串中的某个子串替换为另一个字符串,例如:string str = "hello world";str.replace(6, 5, "there"); //将"world"替换为"there"5. string的截取使用substr函数可以截取字符串中的某一段子串,例如:string str = "hello world";string sub = str.substr(6, 5); //截取"world"6. string的大小写转换使用transform函数可以将字符串中的字母全部转换为大写或小写,例如:string str = "Hello World";transform(str.begin(), str.end(), str.begin(), ::tolower); //将字符串转换为小写transform(str.begin(), str.end(), str.begin(), ::toupper); //将字符串转换为大写以上就是string函数的一些常用用法,掌握这些函数可以让我们更加方便地处理字符串。

c中string函数库常用函数

c中string函数库常用函数

c中string函数库常用函数1.strcpy:将字符串从源头复制到目标地址,即复制字符串。

2.strncpy:复制字符串的限定长度,可以指定字符串的长度。

3.strcat:将一个字符串连接到另一个字符串的尾部,即将一个字符串附加到另一个字符串之后,并返回组合后新字符串的起始地址。

4.strncat:将一个字符串连接到另一个字符串的尾部,但可以指定字符串的连接长度。

5.strcmp:比较两个字符串是否相等,如果相等返回闅0,如果不等返回一个值< 0或 > 0。

6.strncmp:比较两个字符串是否相等,但可以指定比较的长度。

7.strlen:计算字符串的长度。

8.strstr:查找一个字符串在另一个字符串中第一次出现的位置,如果没有找到则返回NULL。

9.strspn:获得“字符串1”中符合“字符串2”中所包含字符的最长子字符串长度。

10.strcspn:获得“字符串1”中不符合“字符串2”中所包含字符的最长子字符串长度。

11.strpbrk:在s1所指的字符串中查找第一次出现在s2所指的字符串中字符的位置,如果没有找到则返回NULL。

12.strchr:在字符串中查找指定字符的第一次出现的位置,如果没有找到则返回NULL。

13.strrchr:在字符串中查找指定字符的最后一次出现的位置,如果没有找到则返回NULL。

14.strtok:使用指定的分隔符将字符串划分称片段,并返回已划分出的第一片段,如果没有找到则返回NULL。

15.strupr:将字符串转换成全部大写字母。

16.strlwr:将字符串转换成全部小写字母。

17.memcpy:将内存块从源头复制到目标地址,即复制内存块。

18.memmove:将内存块从源头移动到目标地址,即移动内存块。

19.memcmp:比较两个内存块是否相等,如果相等返回0,如果不等返回一个值< 0或 > 0。

20.memchr:在内存块中查找指定字符的第一次出现的位置,如果没有找到则返回NULL。

std string构造函数

std string构造函数

std::string 是C++ 标准库中的一个类,用于表示和操作字符串。

std::string 提供了多种构造函数,以便我们可以根据不同的需求来创建字符串对象。

以下是一些常见的std::string 构造函数:默认构造函数:cppstd::string s;创建一个空的字符串。

2. 用给定的字符串初始化:cppstd::string s = "Hello";或cppstd::string s("Hello");创建一个字符串并初始化为"Hello"。

3. 用给定数量的字符初始化:cppstd::string s(5, 'a');创建一个字符串,包含5个连续的'a' 字符,即"aaaaa"。

4. 复制构造函数:cppstd::string original = "Hello";std::string copy(original);从另一个std::string 对象创建一个字符串。

5. 从C 风格的字符串初始化:cppconst char* cstr = "Hello";std::string s(cstr);从C 风格的字符串(null-terminated) 创建一个std::string。

6. 从子字符串初始化:cppstd::string s("Hello World", 6, 5);从"Hello World" 中提取从索引6 开始、长度为5 的子字符串,所以s 会是"World"。

7. 从迭代器范围初始化:cppstd::vector<char> vec = {'H', 'e', 'l', 'l', 'o'};std::string s(vec.begin(), vec.end()); // s 会是"Hello"从一个迭代器范围(例如另一个容器或数组) 创建一个std::string。

c++ stl常用函数

c++ stl常用函数

c++ stl常用函数C++STL(标准模板库)提供了许多常用的函数来简化编程过程,提高代码的可读性和可维护性。

下面是一些常用的 STL 函数:1. vector::push_back():在向量末尾添加元素。

2. vector::pop_back():从向量末尾删除元素。

3. vector::front():获取向量的第一个元素。

4. vector::back():获取向量的最后一个元素。

5. vector::size():获取向量中元素的数量。

6. vector::empty():判断向量是否为空。

7. vector::clear():清空向量中的所有元素。

8. vector::insert():向向量中插入一个或多个元素。

9. vector::erase():从向量中删除一个或多个元素。

10. vector::resize():调整向量的大小。

11. vector::reserve():预留向量的存储空间。

12. vector::swap():交换两个向量中的元素。

13. string::length():获取字符串的长度。

14. string::empty():判断字符串是否为空。

15. string::push_back():在字符串末尾添加一个字符。

16. string::pop_back():从字符串末尾删除一个字符。

17. string::append():将一个字符串添加到另一个字符串的末尾。

18. string::insert():在字符串中插入一个或多个字符。

19. string::erase():从字符串中删除一个或多个字符。

20. string::substr():获取字符串的子串。

21. string::replace():将字符串中的一个子串替换为另一个字符串。

22. map::insert():向 map 中插入一个键值对。

23. map::erase():从 map 中删除一个键值对。

std string 构造函数

std string 构造函数

std string 构造函数"std::string"构造函数在C++语言中,"std::string"是一个非常常用的类,用于处理字符串。

它提供了多种构造函数,用于创建和初始化字符串对象。

本文将详细介绍"std::string"的构造函数,并以中括号内的内容作为主题,一步一步回答。

1. [std::string 构造函数]是什么?"std::string 构造函数"是一组特殊的成员函数,用于创建和初始化"std::string"对象。

构造函数在对象创建时被调用,并且负责为对象分配内存和初始化其成员变量。

2. 为什么要使用构造函数?构造函数为我们提供了一种方便的方式来创建和初始化字符串对象。

它们可以帮助我们节省手动初始化的时间和代码量,并确保对象是在正确的状态下使用的。

3. 有哪些构造函数可用?"std::string"提供了多种构造函数来满足不同的需求。

以下是一些常用的构造函数:- 默认构造函数: 创建一个空的字符串对象。

- 字符串字面值构造函数: 从C风格字符串中创建一个新字符串对象。

- 复制构造函数: 根据已有的字符串对象创建一个新的字符串对象。

- 带参构造函数: 接受一个数值参数,创建一个包含指定个数字符的字符串对象。

- 范围构造函数: 允许从容器范围内的字符创建一个新的字符串对象。

- 初始化列表构造函数: 使用花括号列表初始化一个字符串对象。

4. 怎样使用默认构造函数?使用默认构造函数非常简单,只需调用"std::string"的默认构造函数即可。

例如:cppstd::string str; 创建一个空字符串对象这样,我们就创建了一个名为"str"的字符串对象,其内容为空。

5. 字符串字面值构造函数怎样使用?字符串字面值构造函数允许我们使用字符串字面值来创建一个新的字符串对象。

C++STL之string类的使用

C++STL之string类的使用

C++STL之string类的使⽤⽬录1.STL简介(1)什么是STL(2)STL的版本(3)如何学习STL(4)STL的六⼤组件2.string类的基本概念(1)含义(2)使⽤⽅法(3)原理3.string类中常见构造函数4.string类中析构函数5.string类对象的容量操作(1)显⽰容量(2)扩容6.string类中operator[]重载(1)举例(2)底层实现7.string类与迭代器(1)举例(2)反向迭代器(3)使⽤迭代的意义(4)补充:语法糖实现遍历8.string类对象的增删操作(1)增删(2)查与匹配9.string类中⾃定义插⼊与删除(效率低,不建议使⽤)10.string类字符串的⽐较11.string类字符串的转换12.总结1.STL简介(1)什么是STLSTL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是⼀个可复⽤的组件库,⽽且是⼀个包罗数据结构与算法的软件框架。

可以理解为就是⼀个类似stdio.h的库,包含了这个库,⾥⾯的语法或者函数可以直接使⽤。

(2)STL的版本最原始的版本是由Alexander Stepanov和Meng Lee开发的,并且他们要求对其进⾏开源处理。

之后⼜经历了PJ.版本,RW版本,SGI版本等,⽬前SGI版本最应⽤最⼴泛的版本,我们后⾯学习STL要阅读部分源代码,主要参考这⼀版本。

总结⼀下⽬前开源与闭源的操作系统或者软件:开源:STL,linux,git,Vue闭源:IOS,Windows(3)如何学习STL第⼀境界:熟练使⽤STL。

第⼆境界:了解STL的源代码,即了解底层。

第三境界:会⾃⼰扩充STL库。

废话不多说,正式进⼊主题:(4)STL的六⼤组件STL有六⼤组成部分,我们会来逐⼀学习:⾸先我们来学习容器中的string类。

2.string类的基本概念(1)含义string类,顾名思义是进⾏字符串操作的⼀个类,操作⽅式即使⽤其中的成员函数来进⾏操作。

STL之一:string用法详解

STL之一:string用法详解

STL之⼀:string⽤法详解1.2.3.4.5.6.7.字符串是程序设计中最复杂的变成内容之⼀。

STL string类提供了强⼤的功能,使得许多繁琐的编程内容⽤简单的语句就可完成。

string字符串类减少了C语⾔编程中三种最常见且最具破坏性的错误:超越数组边界;通过违背初始化或被赋以错误值的指针来访问数组元素;以及在释放了某⼀数组原先所分配的存储单元后仍保留了“悬挂”指针。

string类的函数主要有:Member functionsConstruct string object (public member function )String destructor (public member function )String assignment (public member function )Iterators:Return iterator to beginning (public member function )Return iterator to end (public member function )Return reverse iterator to reverse beginning (public member function )Return reverse iterator to reverse end (public member function )Return const_iterator to beginning (public member function )Return const_iterator to end (public member function )Return const_reverse_iterator to reverse beginning (public member function )Return const_reverse_iterator to reverse end (public member function )Capacity:Return length of string (public member function )Return length of string (public member function )Return maximum size of string (public member function )Resize string (public member function )Return size of allocated storage (public member function )Request a change in capacity (public member function )Clear string (public member function )Test if string is empty (public member function )Shrink to fit (public member function )Element access:Get character of string (public member function )Get character in string (public member function )Access last character (public member function )Access first character (public member function )Modifiers:Append to string (public member function )Append to string (public member function )Append character to string (public member function )Assign content to string (public member function )Insert into string (public member function )Erase characters from string (public member function )Replace portion of string (public member function )Swap string values (public member function )Delete last character (public member function )String operations:Get C string equivalent (public member function )Get string data (public member function )Get allocator (public member function )Copy sequence of characters from string (public member function )Find content in string (public member function )Find last occurrence of content in string (public member function )Find character in string (public member function )Find character in string from the end (public member function )Find absence of character in string (public member function )Find non-matching character in string from the end (public member function )Generate substring (public member function )Compare strings (public member function )Member constantsMaximum value for size_t (public static member constant )Non-member functions overloadsConcatenate strings (function )Relational operators for string (function )Exchanges the values of two strings (function )Extract string from stream (function )Insert string into stream (function )Get line from stream into string (function )1.string对象的定义和初始化初始化string对象的⼏种⽅式有:1. string s1;//默认构造函数,s1为空串2. string s2(s1);//将s2初始化为s1的⼀个副本3. string s3("value");//将s3初始化为value4. string s4(n,'c');//将s4初始化为字符'c'的n个副本5. string s5(s4,0,3)//从s4中下标为0的字符开始,连续取3个字符构成s56. string s6 = s5 + "value";//value 接在s5后⾯,注意+操作符的左右操作数⾄少有⼀个是string类型的7. 迭代器创建,由于可将string看作字符的容器对象,因此可以给string类的构造函数传递两个迭代器,将它们之间的数据复制到⼼的string对象中。

stl string的用法 表

stl string的用法 表

stl string的用法表STL(Standard Template Library)中的string类是一个非常实用的工具,它提供了许多用于操作和处理字符串的功能。

以下是一些常用的STL string类用法:1.赋值和连接:*使用赋值操作符(=)可以将一个字符串赋值给另一个字符串。

例如:```cpp`std::string str1="Hello";std::string str2="World";str1=str2;````*使用字符串连接操作符(+=)可以将两个字符串连接起来。

例如:```cpp`str1+="World";//结果为"Hello World"str2+=str1;//结果为"WorldHello World"````2.访问和检查:*使用at()函数可以返回指定位置的字符,并提供边界检查。

例如:```cpp`char c=str1.at(5);//返回'o'char d=str1.at(10);//抛出out_of_range异常,因为索引超出了范围````*使用[]操作符可以返回指定位置的字符,但不进行边界检查。

例如:```cpp`char e=str1[5];//返回'o'char f=str1[10];//返回'\0',因为索引超出了范围````3.字符串信息:*使用length()函数可以返回字符串的长度。

例如:```cpp`size_t len=str1.length();//返回6````*使用empty()函数可以检查字符串是否为空。

例如:```cpp`bool isEmpty=str1.empty();//false````4.修改字符串:*使用insert()函数可以在指定位置插入字符串。

例如:```cpp`str1.insert(6,"beautiful");//结果为"Hello beautiful World"````*使用erase()函数可以删除从指定位置开始的指定长度的字符。

C++STL(一)string的用法

C++STL(一)string的用法

C++STL(⼀)string的⽤法# 1.string的⽤法- string在&lt;iostream>的头中就有,但是还是得⽤&lt;string>的头##### 构造函数- str(const char* ch) 直接赋值- str(size_t n,char ch) 赋值n个ch字符- str(char* ch,size_t n) 取ch指针的前n位- str(string& str,size_t index,size_t length) 从index开始取length位- str(string& str) 拷贝构造##### 函数- char* c_str() 返回⼀个char*- int size() 返回长度- char at(int index) 返回字符,越界会进⾏try catch捕获异常- void insert(int index,string str)在index位置插⼊str- void insert (int index,string str,int start,int end)在index位置插⼊截取str的- void insert (int index,int count,char ch)在index位置插⼊count个的ch- void append(string s) 增加字符串- void erase(int start,int end) 擦除- int compare(string str) ⽐较两个对象,可以⽐较- int find(string str) str⼦串的下标- int find(string str,int startIndex) 从startIndex开始找⼀个⼦串下标- string substr(int startIndex,int endIndex) 从startIndex到endIndex取⼦串- void swap(string s) 交换两个string##### 运算符- [int index] 获得索引位置字符- << 输出- \+ 连接- == 进⾏判断是否相等- \>=,<=,>,<都可以使⽤##### 迭代器```#include <iostream>#include <string>using namespace std;void funIterator(){string s="hello world";string::iterator ite=s.begin();while(ite!=s.end()){cout<<*ite<<" ";ite++;}}int main(int argc, char** argv) {funIterator();return 0;}```iterator相当于⼀个指针##### 算法**foreach**```#include <iostream>#include <string>#include <algorithm>void fun(char c){cout<< c;}void funForEach(){string str("abcdefg");for_each(str.begin(),str.end(),fun);}int main(int argc, char** argv) {funForEach();return 0;}```所有算法包含在algorithm,for_each循环的⽤法:for_each(str.begin(),str.end(),fun);fun的参数是开始结束元素数组的单个元素**sort**```string str("gfde");sort(str.begin(),str.end());```从⼩到⼤排列```string str("gfde");sort(str.begin(),str.end(),greater<char>());```从⼤到⼩排列`。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int compare(const char *s) const;
int compare(int pos, int n,const char *s) const;
int compare(int pos, int n,const char *s, int pos2) const;
compare函数在>时返回1,<时返回-1,==时返回0
//从pos开始从后向前查找字符串s中前n个字符组成的字符串在当前串中的位置,成功返回所在位置,失败时返回string::npos的值
int find_first_of(char c, int pos = 0) const;//从pos开始查找字符c第一次出现的位置
int find_first_of(const char *s, int pos = 0) const;
int find_first_not_of(const string &s,int pos = 0) const;
//从当前串中查找第一个不在串s中的字符出现的位置,失败返回string::npos
int find_last_of(char c, int pos = npos) const;
int find_last_not_of(char c, int pos = npos) const;
int find_last_not_of(const char *s, int pos = npos) const;
int find_last_not_of(const char *s, int pos, int n) const;
const char *data()const;//返回一个非null终止的c字符数组
const char *c_str()const;//返回一个以null终止的c字符串
int copy(char *s, int n, int pos = 0) const;//把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中,返回实际拷贝的数目
string类的字符操作:
const char &operator[](int n)const;
const char &at(int n)const;
char &operator[](int n);
char &at(int n);
operator[]和at()均返回当前字符串中第n个字符的位置,但at函数提供范围检查,当越界时会抛出out_of_range异常,下标运算符[]不提供检查访问。
string &replace(int p0, int n0,const char *s);//删除从p0开始的n0个字符,然后在p0处插入串s
string &replace(int p0, int n0,const char *s, int n);//删除p0开始的n0个字符,然后在p0处插入字符串s的前n个字符
int length()const; //返回当前字符串的长度
bool empty()const; //当前字符串是否为空
void resize(int len,char c);//把字符串当前大小置为len,并用字符c填充不足的部分
string类的输入输出操作:
string &assign(const char *s);//用c类型字符串s赋值
string &assign(const char *s,int n);//用c字符串s开始的n个字符赋值
string &assign(const string &s);//把字符串s赋给当前字符串
string &assign(int n,char c);//用n个字符c赋值给当前字符串
string &replace(int p0, int n0,int n, char c);//删除p0开始的n0个字符,然后在p0处插入n个字符c
string &replace(iterator first0, iterator last0,const char *s);//把[first0,last0)之间的部分替换为字符串onst; //返回当前容量(即string中不必增加内存即可存放的元素个数)
int max_size()const; //返回string对象中可存放的最大字符串的长度
int size()const; //返回当前字符串的大小
string &assign(const string &s,int start,int n);//把字符串s中从start开始的n个字符赋给当前字符串
string &assign(const_iterator first,const_itertor last);//把first和last迭代器之间的部分赋给字符串
int find_last_not_of(const string &s,int pos = npos) const;
//find_last_of和find_last_not_of与find_first_of和find_first_not_of相似,只不过是从后向前查找
string类的替换函数:
int compare(int pos, int n,const string &s)const;//比较当前字符串从pos开始的n个字符组成的字符串与s的大小
int compare(int pos, int n,const string &s,int pos2,int n2)const;//比较当前字符串从pos开始的n个字符组成的字符串与s中pos2开始的n2个字符组成的字符串的大小
int find_first_not_of(char c, int pos = 0) const;
int find_first_not_of(const char *s, int pos = 0) const;
int find_first_not_of(const char *s, int pos,int n) const;
string的子串:
string substr(int pos = 0,int n = npos) const;//返回pos开始的n个字符组成的字符串
string的交换:
void swap(string &s2); //交换当前字符串与s2的值
string类的查找函数:
int find_first_of(const char *s, int pos, int n) const;
int find_first_of(const string &s,int pos = 0) const;
//从pos开始查找当前串中第一个在s的前n个字符组成的数组里的字符的位置。查找失败返回string::npos
int find(const string &s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置
//查找成功时返回所在位置,失败返回string::npos的值
int rfind(char c, int pos = npos) const;//从pos开始从后向前查找字符c在当前串中的位置
int find_last_of(const char *s, int pos = npos) const;
int find_last_of(const char *s, int pos, int n = npos) const;
int find_last_of(const string &s,int pos = npos) const;
string类重载运算符operator>>用于输入,同样重载运算符operator<<用于输出操作。
函数getline(istream &in,string &s);用于从输入流in中读取字符串到s中,以换行符'\n'分开。
string的赋值:
string &operator=(const string &s);//把字符串s赋给当前字符串
//在当前字符串结尾添加n个字符
c string &append(int n,char c);
string &append(const_iterator first,const_iterator last);//把迭代器first和last之间的部分连接到当前字符串的结尾
string的比较:
bool operator==(const string &s1,const string &s2)const;//比较两个字符串是否相等
运算符">","<",">=","<=","!="均被重载用于字符串的比较;
int compare(const string &s) const;//比较当前字符串和s的大小
int rfind(const char *s, int pos = npos) const;
int rfind(const char *s, int pos, int n = npos) const;
int rfind(const string &s,int pos = npos) const;
string &append(const char *s,int n)
string &append(const string &s); //同operator+=()
相关文档
最新文档