c++字符串操作string获取子串--提取字符串
C++ 提供了丰富的字符串操作功能,以下是一些常用的字符串操作方法:
使用标准库 <string>
- 声明和初始化
cpp
#include <string>
std::string str1 = "Hello";
std::string str2("World");
std::string str3 = str1 + " " + str2;
- 基本操作
- 获取长度:
str.length()
或str.size()
- 访问字符:
str[i]
- 拼接字符串:
str1 += str2;
或str1 = str1 + str2;
- 清空字符串:
str.clear();
- 查找和替换
- 查找子串:
str.find("substr")
,返回位置索引,若未找到则返回std::string::npos
- 替换子串:
str.replace(pos, len, "newstr");
- 子串操作,提取字符串
- 获取子串:
str.substr(pos, len);
- 修改操作
- 插入子串:
str.insert(pos, "substr");
- 删除子串:
str.erase(pos, len);
- 比较操作
- 比较:
str1.compare(str2);
,返回0表示相等,小于0表示str1小于str2,大于0表示str1大于str2
使用C风格字符串(char*
)
C++ 也支持C风格的字符串操作,但需要注意内存管理和安全性问题。
- 声明和初始化
cpp
char str[] = "Hello";
char* str_ptr = "World";
- 基本操作
- 获取长度:
strlen(str);
- 拼接字符串:
strcat(str1, str2);
- 复制字符串:
strcpy(dest, src);
- 比较:
strcmp(str1, str2);
- 其他函数
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>
库,因为它提供了更加安全和方便的字符串处理方法。
欢迎讨论,相互学习。
cdtxw@foxmail.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2024-01-08 53.python类的继承与构造函数
2024-01-08 pycharm社区版下载方法