c++字符串操作string获取子串--提取字符串

C++ 提供了丰富的字符串操作功能,以下是一些常用的字符串操作方法:

使用标准库 <string>

  1. 声明和初始化
cpp
复制
#include <string>

std::string str1 = "Hello";
std::string str2("World");
std::string str3 = str1 + " " + str2;
  1. 基本操作
  • 获取长度:str.length() 或 str.size()
  • 访问字符:str[i]
  • 拼接字符串:str1 += str2; 或 str1 = str1 + str2;
  • 清空字符串:str.clear();
  1. 查找和替换
  • 查找子串:str.find("substr"),返回位置索引,若未找到则返回 std::string::npos
  • 替换子串:str.replace(pos, len, "newstr");
  1. 子串操作,提取字符串
  • 获取子串:str.substr(pos, len);
  1. 修改操作
  • 插入子串:str.insert(pos, "substr");
  • 删除子串:str.erase(pos, len);
  1. 比较操作
  • 比较:str1.compare(str2);,返回0表示相等,小于0表示str1小于str2,大于0表示str1大于str2

使用C风格字符串(char*

C++ 也支持C风格的字符串操作,但需要注意内存管理和安全性问题。

  1. 声明和初始化
cpp
复制
char str[] = "Hello";
char* str_ptr = "World";
  1. 基本操作
  • 获取长度:strlen(str);
  • 拼接字符串:strcat(str1, str2);
  • 复制字符串:strcpy(dest, src);
  • 比较:strcmp(str1, str2);
  1. 其他函数
  • strncpy()strncat()strncmp() 等函数提供了长度限制的版本,更安全。

示例

以下是一个简单的示例,展示了如何使用 <string> 库进行字符串操作:

cpp
复制
#include <iostream>
#include <string>

int main() {
    std::string str1 = "Hello";
    std::string str2 = "World";

    // 拼接字符串
    std::string str3 = str1 + " " + str2;

    // 输出字符串
    std::cout << str3 << std::endl;

    // 查找子串
    size_t found = str3.find("World");
    if (found != std::string::npos)
        std::cout << "Found 'World' at index: " << found << std::endl;

    // 替换子串
    str3.replace(found, str2.length(), "C++");
    std::cout << str3 << std::endl;

    return 0;
}

在使用字符串操作时,需要注意避免越界访问和内存泄漏等问题,尤其是在使用C风格字符串时。在C++中推荐使用 <string> 库,因为它提供了更加安全和方便的字符串处理方法。

posted @   txwtech  阅读(240)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2024-01-08 53.python类的继承与构造函数
2024-01-08 pycharm社区版下载方法
点击右上角即可分享
微信分享提示