如何使用C++中的字符串类(如std::string)

在C++中,std::string 类是标准模板库(Standard Template Library, STL)的一部分,它提供了对字符串的灵活处理。std::string 使得字符串的存储、操作、比较、查找等任务变得更加方便和高效。下面将介绍如何使用 std::string 类。

1. 包含头文件

要使用 std::string,首先需要包含其对应的头文件 <string>

 

cpp复制代码

#include <string>

2. 声明和初始化

声明
 

cpp复制代码

std::string str; // 声明一个空字符串
初始化
  • 直接赋值:
 

cpp复制代码

std::string str = "Hello, World!";
  • 使用构造函数:
 

cpp复制代码

std::string str("Hello, World!");
  • 使用 std::string 的其他构造函数,如从字符数组初始化:
 

cpp复制代码

char arr[] = "Hello, World!";
std::string str(arr);

3. 字符串操作

连接字符串

使用 + 操作符或者 append() 成员函数。

 

cpp复制代码

std::string str1 = "Hello, ";
std::string str2 = "World!";
std::string str3 = str1 + str2; // 使用 + 操作符
std::string str4 = "Hello, ";
str4.append("World!"); // 使用 append() 函数
获取字符串长度

使用 size() 或 length() 成员函数。

 

cpp复制代码

std::string str = "Hello, World!";
std::size_t len = str.size(); // 或 str.length();
字符串比较

使用 ==!=<><=>= 操作符或者 compare() 成员函数。

 

cpp复制代码

std::string str1 = "apple";
std::string str2 = "banana";
if (str1 < str2) {
// str1 小于 str2
}
int result = str1.compare(str2); // 如果 str1 小于 str2,返回负值;如果相等,返回 0;如果大于,返回正值。
访问字符串中的字符

使用下标操作符 [] 或 at() 成员函数(at() 会进行越界检查)。

 

cpp复制代码

std::string str = "Hello";
char c = str[0]; // 使用下标操作符
char d = str.at(1); // 使用 at() 函数

4. 修改字符串

替换字符串

使用 replace() 成员函数。

 

cpp复制代码

std::string str = "Hello, World!";
str.replace(7, 5, "C++"); // 从索引 7 开始,替换长度为 5 的子串为 "C++"
插入和删除
  • 插入:使用 insert() 成员函数。
 

cpp复制代码

std::string str = "Hello";
str.insert(5, " World"); // 在索引 5 的位置插入 " World"
  • 删除:使用 erase() 成员函数。
 

cpp复制代码

std::string str = "Hello, World!";
str.erase(7, 5); // 从索引 7 开始,删除长度为 5 的子串

5. 查找字符串

使用 find()rfind()find_first_of()find_last_of()find_first_not_of()find_last_not_of() 等成员函数。

 

cpp复制代码

std::string str = "Hello, World!";
std::size_t pos = str.find("World"); // 查找 "World" 第一次出现的位置

std::string 类提供的功能远不止这些,但以上介绍的是最基本和最常用的操作。通过查阅 C++ 标准库文档,你可以了解到更多高级特性和用法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值