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

浙公网安备 33010602011771号