C++中字符串常用操作

简介: C++中字符串常用操作

一、引言

在C++编程中,字符串是一种常见且重要的数据类型。C++标准库提供了std::string类,该类封装了对字符串的各种操作,使得字符串的处理变得方便和高效。本文将介绍C++中std::string类的一些常用操作,包括字符串的创建、修改、访问、查找、连接和比较等。

二、字符串的创建和初始化

在C++中,可以通过多种方式创建和初始化std::string对象。

默认构造函数

cpp

 

std::string str; // 创建一个空字符串

使用C风格字符串初始化

cpp

 

const char* cstr = "Hello, World!";

 

std::string str(cstr); // 使用C风格字符串初始化

使用字符数组初始化

cpp

 

char arr[] = {'H', 'e', 'l', 'l', 'o'};

 

std::string str(arr, 5); // 使用字符数组和长度初始化

使用单个字符重复初始化

cpp

 

std::string str(10, 'a'); // 创建一个包含10个'a'的字符串

三、字符串的修改

std::string类提供了多种方法来修改字符串的内容。

追加字符串

cpp

 

std::string str = "Hello";

 

str += ", World!"; // 追加字符串

插入字符串

cpp

 

std::string str = "Hello";

 

str.insert(5, " World"); // 在索引5处插入字符串

替换字符串

cpp

 

std::string str = "Hello, World!";

 

str.replace(7, 5, "C++"); // 从索引7开始,替换5个字符为"C++"

删除字符串

cpp

 

std::string str = "Hello, World!";

 

str.erase(7, 5); // 从索引7开始,删除5个字符

四、字符串的访问

std::string类提供了多种方式来访问字符串中的字符。

通过索引访问

cpp

 

std::string str = "Hello";

 

char c = str[1]; // 访问索引1处的字符,即'e'

通过迭代器访问

cpp

 

std::string str = "Hello";

 

for (std::string::iterator it = str.begin(); it != str.end(); ++it) {

 

char c = *it; // 通过迭代器访问字符

 

// ...

 

}

使用at()函数访问(带边界检查)

cpp

 

std::string str = "Hello";

 

char c = str.at(1); // 访问索引1处的字符,如果越界则抛出异常

五、字符串的查找

std::string类提供了多种方法来查找字符串中的子串或字符。

查找子串

cpp

 

std::string str = "Hello, World!";

 

size_t pos = str.find("World"); // 查找"World"子串的起始位置

 

if (pos != std::string::npos) {

 

// 找到子串,进行处理

 

}

查找字符

cpp

 

std::string str = "Hello";

 

size_t pos = str.find('o'); // 查找字符'o'的首次出现位置

 

if (pos != std::string::npos) {

 

// 找到字符,进行处理

 

}

六、字符串的连接和比较

连接字符串

cpp

 

std::string str1 = "Hello";

 

std::string str2 = " World!";

 

std::string str3 = str1 + str2; // 连接两个字符串

比较字符串

cpp

 

std::string str1 = "apple";

 

std::string str2 = "banana";

 

 

 

if (str1 == str2) {

 

// 相等

 

} else if (str1 < str2) {

 

// str1小于str2

 

} else {

 

// str1大于str2

 

}

七、其他常用操作

除了上述操作外,std::string类还提供了许多其他常用操作,如获取字符串长度(length()size())、清空字符串(clear())、转换为C风格字符串(`c

 

目录
相关文章
|
1月前
|
数据处理 C++
C++程序字符串流
C++程序字符串流
25 2
|
9天前
|
编译器 C++
【C++进阶】深入STL之string:模拟实现走进C++字符串的世界
【C++进阶】深入STL之string:模拟实现走进C++字符串的世界
13 1
|
18天前
|
存储 算法 Cloud Native
C++ bcrypt算法 字符串加密,亲测有效
C++ bcrypt算法 字符串加密,亲测有效
|
24天前
|
对象存储 C++ 索引
C++ 字符串操作的技术性探讨
C++ 字符串操作的技术性探讨
8 1
|
28天前
|
存储 安全 C语言
c++字符串
c++字符串
27 1
|
11天前
|
C++ 容器
【C++语言】String 类关键函数实现,手搓一个简单字符串类!
【C++语言】String 类关键函数实现,手搓一个简单字符串类!
|
11天前
|
C++ 索引
C++ string类常用操作
C++ string类常用操作
|
1月前
|
存储 C++
C++程序中的字符串与指针
C++程序中的字符串与指针
16 2
|
22天前
|
C++ 安全
高效遍历:C++中分隔字符串单词的3种方法详解与实例
拷贝并交换(Copy-and-Swap)是C++中实现赋值操作符和异常安全拷贝构造函数的技巧。它涉及创建临时对象,使用拷贝构造函数,然后交换数据以确保安全。C++11之前的策略在此后及C++11引入的移动语义和右值引用下仍有效,但后者提供了更高效的实现方式。
|
1月前
|
Java C++ Python
C++ 使用getline()从文件中读取一行字符串
`getline()` 是 C++ 中 `istream` 类的一个方法,被 `fstream` 和 `ifstream` 继承,用于从文件中读取一行字符串。它有两种语法:一种是从文件读取 `bufSize-1` 个字符到 `buf` 直到 `\n`,另一种是读到指定分隔符 `delim`。如果文件中的字符数量超过 `bufSize`,会导致读取失败。示例代码展示了如何使用 `getline()` 读取和打印文件内容。通过循环调用 `getline()`,可以连续读取文件的多行数据。
29 0