C++ string.substring
时间: 2023-08-10 17:26:26 浏览: 170
在 C++ 中,可以使用 `substr()` 函数来获取字符串的一个子串,它的语法为:
```cpp
string substr (size_t pos, size_t len) const;
```
其中,`pos` 表示子串的起始位置,`len` 表示子串的长度。例如,如果要获取字符串 `str` 中从位置 3 开始,长度为 5 的子串,可以这样写:
```cpp
string str = "Hello, world!";
string sub = str.substr(3, 5);
```
这样,`sub` 的值就是 `"lo, w"`。需要注意的是,`substr()` 函数返回的是一个新的字符串对象,而非原字符串的引用。如果要修改子串,需要通过 `sub` 的成员函数来实现,例如:
```cpp
sub[0] = 'L';
```
这样,`sub` 的值就变成了 `"Lo, w"`,而原字符串 `str` 的值不会受到影响。
相关问题
C++ string.substr
C++中的string类提供了substr函数,用于提取字符串的子串。它接受两个参数:起始位置和子串的长度。
以下是substr函数的语法:
```cpp
string substr (size_t pos = 0, size_t len = npos) const;
```
其中,pos是子串的起始位置,len是子串的长度。如果不指定len,默认提取从pos位置到字符串末尾的所有字符。
下面是一个示例:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, World!";
std::string sub = str.substr(7, 5);
std::cout << "Substring: " << sub << std::endl;
return 0;
}
```
该示例中,substr函数从字符串"Hello, World!"的第8个字符开始提取长度为5的子串,即"World"。然后将该子串输出。
希望能够解答你的问题!如果还有其他问题,请继续提问。
C++ string .find
在C++中,`std::string` 类型有一个名为 `find` 的成员函数,用于查找字符串内的指定字符、子串或者首次出现的位置。它的基本语法如下:
```cpp
size_t find(const char* str, size_t pos = 0) const;
size_t find(const std::string& str, size_t pos = 0) const;
```
这里有两个重载版本:
1. 第一个接受一个指向字符的指针作为参数 `str` 和一个可选的起始搜索位置 `pos`,默认值为0(表示从字符串开头开始搜索)。如果找到匹配的子串,则返回该子串的第一个字符在原字符串中的索引;如果没有找到则返回 `npos`(通常是一个特殊值,表示未找到)。
2. 第二个重载版本接受一个 `std::string` 对象 `str` 作为参数,其他部分与第一个重载类似。
例如,如果你有一个 `std::string` 变量 `s`,你可以这样做:
```cpp
size_t index = s.find("hello"); // 查找 "hello",默认从头开始
if (index != npos)
{
// 子串存在,打印其位置
std::cout << "Substring found at position: " << index << std::endl;
}
else
{
std::cout << "Substring not found." << std::endl;
}
```
阅读全文