【C++STL基础入门】深入浅出string类insert和appand

简介: 【C++STL基础入门】深入浅出string类insert和appand

前言


本系列STL是使用vs2022+C++20版本特性来写的。

21be7f0436cb45a0bdc5efc756ed0f68.png

在C++标准模板库(STL)的众多容器中,string类是处理字符串的重要工具。它提供了丰富的函数和操作符,使得字符串的操作变得简单而高效。本文将介绍string类的基础用法,包括增加、删除、修改和查找字符串的方法。


一、插入


1.中间插入

1、basic_string &insert( size_type index, const basic_string &str );

作用:在指定的位置插入另一个字符串到当前字符串中。

参数:index 表示插入位置的索引,str 是要插入的字符串。

返回值:返回修改后的字符串的引用。

示例代码如下:

std::string str = "Hello";
std::string insertStr = " World";
str.insert(5, insertStr);
// 结果为 "Hello World"


2、basic_string &insert( size_type index, const char *str );

功能:在指定的位置插入一个C风格字符串到当前字符串中。

参数:index 表示插入位置的索引,str 是要插入的C风格字符串。

返回值:返回修改后的字符串的引用。

示例代码

std::string str = "Hello";
const char* insertStr = " World";
str.insert(5, insertStr);
// 结果为 "Hello World"


3、basic_string &insert( size_type index1, const basic_string &str, size_type index2, size_type num );

功能:在指定的位置插入另一个字符串的一部分到当前字符串中。

参数:index1 表示插入位置的索引,str 是要插入的字符串,index2 表示要插入字符串的起始位置,num 表示要插入的字符个数。

返回值:返回修改后的字符串的引用。

示例代码:

std::string str = "Hello";
std::string insertStr = " World";
str.insert(5, insertStr, 1, 3);
// 结果为 "Hello Worllo"


4、basic_string &insert( size_type index, const char *str, size_type num );

功能:在指定的位置插入一个C风格字符串的一部分到当前字符串中。

参数:index 表示插入位置的索引,str 是要插入的C风格字符串,num 表示要插入的字符个数。

返回值:返回修改后的字符串的引用。

示例代码:

std::string str = "Hello";
const char* insertStr = " World";
str.insert(5, insertStr, 1, 3);
// 结果为 "Hello Worllo"


5、basic_string &insert( size_type index, size_type num, char ch );

功能:在指定的位置插入指定数量的字符到当前字符串中。

参数:index 表示插入位置的索引,num 表示要插入的字符个数,ch 表示要插入的字符。

返回值:返回修改后的字符串的引用。

std::string str = "Hello";
char ch = '-';
str.insert(5, 3, ch);
// 结果为 "Hello---"


2.尾巴插入


+=拼接

当使用 += 运算符对 std::string 进行拼接时,它会将右侧的字符串附加到左侧的字符串末尾,从而修改左侧字符串的值。

示例代码如下:

std::string str = "Hello";
std::string appendStr = " World";
str += appendStr;
std::cout << str << std::endl; // 输出:Hello World


appand

1、basic_string &append( const basic_string &str );

功能:将给定字符串附加到当前字符串的末尾。

参数:str 是要附加的字符串。

返回值:返回修改后的字符串的引用。

示例代码:

std::string str = "Hello";
std::string appendStr = " World";
str.append(appendStr);
// 结果为 "Hello World"


2、basic_string &append( const char *str );

功能:将给定的C风格字符串附加到当前字符串的末尾。

参数:str 是要附加的C风格字符串。

返回值:返回修改后的字符串的引用。

示例代码:

std::string str = "Hello";
const char* appendStr = " World";
str.append(appendStr);
// 结果为 "Hello World"


3、basic_string &append( const basic_string &str, size_type index, size_type len );

功能:将给定字符串的一部分附加到当前字符串的末尾。

参数:str 是要附加的字符串,index 表示要附加字符串的起始位置,len 表示要附加的字符个数。

返回值:返回修改后的字符串的引用。

示例代码:

std::string str = "Hello";
std::string appendStr = " World";
str.append(appendStr, 1, 3);
// 结果为 "Hello Wor"


4、basic_string &append( const char *str, size_type num );

功能:将给定C风格字符串的一部分附加到当前字符串的末尾。

参数:str 是要附加的C风格字符串,num 表示要附加的字符个数。

返回值:返回修改后的字符串的引用。

示例代码:

std::string str = "Hello";
const char* appendStr = " World";
str.append(appendStr, 1, 3);
// 结果为 "Hello Wor"


5、basic_string &append( size_type num, char ch );

功能:将指定数量的字符附加到当前字符串的末尾。

参数:num 表示要附加的字符个数,ch 表示要附加的字符。

返回值:返回修改后的字符串的引用。

示例代码:

std::string str = "Hello";
char ch = '-';
str.append(3, ch);
// 结果为 "Hello---"


总结


在C++标准模板库(STL)的众多容器中,string类是处理字符串的重要工具。它提供了丰富的函数和操作符,使得字符串的操作变得简单而高效。本文将介绍string类的基础用法,包括增加、删除、修改和查找字符串的方法。

c61e1971b51141d99fb8d4cf9c9c9ae2.png

相关文章
|
28天前
|
安全 编译器 C语言
【C++数据结构】string的模拟实现
【C++数据结构】string的模拟实现
|
23天前
|
NoSQL 安全 Java
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
这篇文章深入探讨了Redis中的String数据类型,包括键操作的命令、String类型的命令使用,以及String在Redis中的内部数据结构实现。
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
|
14天前
|
编译器 C++ 容器
【C++】String常见函数用法
【C++】String常见函数用法
12 1
|
7天前
|
存储 C++
C++(五)String 字符串类
本文档详细介绍了C++中的`string`类,包括定义、初始化、字符串比较及数值与字符串之间的转换方法。`string`类简化了字符串处理,提供了丰富的功能如字符串查找、比较、拼接和替换等。文档通过示例代码展示了如何使用这些功能,并介绍了如何将数值转换为字符串以及反之亦然的方法。此外,还展示了如何使用`string`数组存储和遍历多个字符串。
|
16天前
|
存储 C++
C++ dll 传 string 类 问题
C++ dll 传 string 类 问题
15 0
|
21天前
|
存储 C++
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
29 0
|
28天前
|
存储 算法 程序员
【STL】string
【STL】string
|
29天前
|
编译器 C语言 C++
【C++】模拟实现string类
【C++】模拟实现string类
|
3月前
|
Java UED
Java中String强转int:一种常见的错误和解决方法
在Java中将非数字字符串转换为整数会导致`NumberFormatException`。要解决这个问题,可以使用`try-catch`捕获异常,正则表达式验证数字格式,或利用异常信息提供错误提示。例如,`Integer.parseInt()`会因遇到非数字字符如`&quot;123abc&quot;`而抛出异常,但通过异常处理或正则`\\d+`可确保安全转换。记得在编程时避免直接强转,以防止程序异常中断。
|
26天前
|
前端开发 Java
成功解决:java.lang.String cannot be cast to java.lang.Integer
这篇文章记录了作者在使用Axios二次封装时遇到的一个Java类型转换问题,即前端传递的字符串参数不能直接转换为Integer类型,文章提供了正确的转换方法来解决这个问题。
成功解决:java.lang.String cannot be cast to java.lang.Integer