C++ 字符串2025 年 8 月 29 日 | 阅读 13 分钟 在 C++ 中,字符串是 std::string 类的对象,代表一个字符序列。我们可以对字符串执行许多操作,例如连接、比较、转换等。 C++ 将字符串作为字符的顺序集合来处理文本数据的存储和操作。字符串的主要编程功能使开发人员能够有效地处理姓名、消息、句子和其他文本数据。字符串为了存储其字符而占据一个连续的内存块,但它们与 int 或 char 等单值 数据类型 有根本区别。 简单的字符串示例让我们看一个简单的 C++ 字符串示例。 示例编译并运行输出 Hello C++ 说明 此 C++ 程序演示了字符串初始化,其中 s1 被赋值为字符串字面量,s2 通过字符串构造函数从字符数组创建。之后,它将这两个字符串作为输出打印。 C++ 中的字符串类型C++ 支持两种主要的字符串类型 1. C 风格字符串(字符数组)C 风格字符串包含以终止空字符 (\0) 停止的顺序字符。使用此字符串类型需要 <cstring> 库的 内存处理 函数以及用户控制的内存管理。 示例 2. C++ 字符串(标准库中的 std::string)通过 std::string 处理的字符串比标准模板库 (STL) 具有更好的灵活性和安全性。内置函数 length()、append()、substr() 和 replace 帮助用户标准地有效地操作字符串。标准库字符串自动管理内存,因此开发人员避免遇到缓冲区溢出。 示例 在 C++ 中创建和初始化字符串在 C++ 中,可以使用 C 风格字符 数组 或 <string> 库中的 std::string 来创建和初始化字符串。 a. 初始化 C 风格字符串 b. 初始化 std::string 示例 让我们看一个例子来说明在 C++ 中创建和初始化字符串。 示例编译并运行输出 C-Style Strings: str1: Hello str2: Hello str3: Hello std::string Initialization: s1: Hello s2: World s3: AAAAA s4: Hello World 说明 该程序演示了使用字符数组初始化 C 风格字符串以及使用直接赋值、构造函数和连接初始化 std::string 的不同方法。它打印初始化后的值以显示它们在 C++ 字符串处理中的用法。 在 C++ 中访问字符串可以通过字符串中的索引按位置访问字符串元素。C 风格字符串通过数组表示法访问元素,而 std::string 为用户提供了多种检索字符的函数。循环中的遍历方法使用户能够操作或检索字符串中的信息。 a) 访问 C 风格字符串 使用数组索引 我们可以在 C++ 中使用数组索引来访问 C 风格字符串。 使用指针 我们可以在 C++ 中使用指针来访问 C 风格字符串。 b) 访问 std::string 使用 [] 运算符 我们可以在 C++ 中使用 [] 运算符来访问 std::string。 使用 .at(index) 我们也可以在 C++ 中使用 .at(index) 来访问 std::string。 使用 .front() 和 .back() 我们也可以在 C++ 中使用 .front() 和 .back() 函数来访问 std::string。 示例让我们看一个例子来说明在 C++ 中访问字符串。 示例编译并运行输出 C-Style String Access: Using array indexing: H Using pointer: H Using pointer arithmetic: e Using loop traversal: Hello std::string Access: Using [] operator: e Using .at(): l Using .front(): H Using .back(): o Using iterators: Hello Using range-based for loop: Hello Using .c_str(): Hello 说明 此 C++ 程序演示了使用索引、指针和 循环 访问 C 风格字符串的各种方法,以及使用 .at()、.front()、.back()、迭代器和范围基于循环等方法访问 std::string。它还使用 .c_str() 将 std::string 转换为 C 风格字符串。 在 C++ 中更新字符串可以通过更改特定字符以及添加新部分或替换现有文本来修改字符串。C 风格字符串在修改期间需要适当的内存管理,因为可能会发生缓冲区溢出,而 std::string 包含自动函数来添加、插入、删除和交换其字符串中的部分。 a) 更新 C 风格字符串 使用 [] 运算符 在 C++ 中,我们可以使用 [] 运算符更新 C 风格字符串。 b) 更新 std::string 使用 [] 或 .at() 在 C++ 中,我们可以使用 [] 运算符更新 C 风格字符串。 示例让我们看一个例子来说明如何在 C++ 中更新字符串。 示例编译并运行输出 Updated C-Style String: Mello After modifying using []: Mello After modifying using at(): Mallo 说明 此 C++ 程序演示了在 C++ 中更新 C 风格字符串和 std::string。它使用索引 ('[]') 和 '.at()' 方法修改特定字符,展示了如何安全地更改字符串值。 使用 .append() 或 += 追加字符串字符串允许通过 C 风格的手动连接或 std::string 的内置操作将新字符或单词追加到其末尾。 使用 .append() 方法 我们可以在 C++ 中使用 .append() 方法追加字符串。 使用 += 运算符 我们可以在 C++ 中使用 += 运算符追加字符串。 示例让我们看一个例子来说明如何在 C++ 中追加字符串。 示例编译并运行输出 After append(): Hello World After += operator: Hello World!!! 说明 '.append()' 方法将 " World" 添加到原始字符串 "Hello" 中,将其更新为 "Hello World"。然后 '+=' 运算符进一步追加 "!!!", 最终输出为 "Hello World!!!"。 使用 .replace() 替换子字符串字符串中的子字符串可以通过 C 风格字符串中的直接手动编辑以及 std::string 中的集成函数来替换为不同的字符串。 示例让我们看一个例子来说明如何使用 .replace() 函数在 C++ 中替换子字符串。 示例编译并运行输出 After replace(): Hello C++ 说明 'std::string::replace()' 方法从索引 '6' 开始,长度为 '5' 个字符(即 "World")将字符串的一部分替换为 "C++"。它将原始字符串修改为 "Hello C++",演示了 C++ 中子字符串替换的工作原理。 C++ 字符串的其他示例C++ 字符串的其他几个示例如下: 1. C++ 字符串比较示例让我们通过 strcmp() 函数看一个简单的字符串比较示例。 示例编译并运行输出 What is my favourite fruit? apple What is my favourite fruit? banana What is my favourite fruit? mango The answer is correct!! 说明 在此程序中,使用 strcmp() 函数将用户输入与预定义的字符串 "mango" 进行比较。这将检查两个字符串之间的相等性。当用户输入 "mango" 时,strcmp() 返回 0,导致循环终止并显示 "Answer is correct!!"。 2. C++ 字符串连接示例让我们通过 strcat() 函数看一个简单的字符串连接示例。 示例编译并运行输出 Enter the key string: Welcome to Enter the buffer string: C++ Programming. Key = Welcome to C++ Programming. Buffer = C++ Programming. 说明 此程序使用 'strcat()' 函数连接两个 C 风格字符串,该函数将 'buffer' 字符串追加到 'key' 字符串。连接后,更新后的 'key' 包含两个字符串的组合,而 'buffer' 保持不变。 3. C++ 字符串复制示例让我们通过 strcpy() 函数看一个简单的字符串复制示例。 示例编译并运行输出 Enter the key string: C++ Tutorial Key = C++ Tutorial Buffer = C++ Tutorial 说明 此程序使用 'strcpy()' 函数将 'key' 字符串的内容复制到 'buffer' 字符串中。复制后,'key' 和 'buffer' 都包含相同的字符串。 4. C++ 字符串长度示例让我们通过 strlen() 函数看一个简单的查找字符串长度的示例。 示例编译并运行输出 Length of String = 26 说明 此程序使用 'strlen()' 函数计算字符串 "Welcome to C++ Programming" 的长度。它返回字符串中的字符数,不包括空终止符 ('\0')。 在 C++ 中将字符串传递给函数a) 将 C 风格字符串传递给函数 C 风格字符串作为字符数组传递。使用 const 来防止在函数内部修改是一个好习惯。 b) 将 std::string 传递给函数 std::string 类提供了更安全、更灵活的方式来处理 C++ 中的字符串。通过引用传递 (const std::string&) 可避免不必要的复制。 为什么要使用 C++ 中的字符串?
C++ 字符串函数下表包含 C++ 中的一些字符串函数。
C++ 字符串选择题1. 什么是 C++ 字符串?
答案:d) b 和 c 都是 2. 在 C++ 中,哪个头文件允许开发人员使用 std::string?
答案:a) <string> 3. C++ 如何在存储中组织字符串数据?
答案:b) 顺序字符集合 4. 哪个字符表示 C++ 内存中 C 风格字符串的终止?
答案:c) 字符串以空字符 (\0) 结尾 5. 哪个标准函数确定使用 std::string 的 C++ 字符串的长度值?
答案:d) a 和 b 都是 下一个主题C++ 指针 |
我们请求您订阅我们的新闻通讯以获取最新更新。