c++字符串截取函数
时间: 2024-08-16 18:04:30 浏览: 30
在C++中,可以使用`substr()`函数来截取字符串。这个函数用于获取从指定位置开始到指定长度的新字符串。它的基本语法如下:
```cpp
string substr(size_t pos = 0, size_t len = npos);
```
其中:
- `pos`: 起始位置,如果未提供则默认为0,表示从字符串开头开始截取。
- `len`: 截取的字符数,如果不提供,默认截取到字符串结尾(npos是一个特殊的值,代表整个字符串的长度)。若提供len,pos + len大于原始字符串长度,则只会截取到字符串的实际结束。
例如,假设有一个名为`str`的字符串,你可以这样做:
```cpp
string str = "Hello, World!";
string subStr = str.substr(7); // 从第8个字符开始截取,得到"World!"
string subStr2 = str.substr(7, 5); // 截取5个字符,得到"World"
```
相关问题
c++ 字符串截取函数
C++ 中可以使用 substr() 函数来截取字符串。该函数的语法如下:
```
string substr (size_t pos, size_t len) const;
```
其中,pos 表示要截取的起始位置,len 表示要截取的长度。如果省略 len 参数,则默认截取到字符串末尾。
例如,以下代码将从字符串 str 的第 3 个字符开始截取 5 个字符:
```
string str = "Hello, world!";
string substr = str.substr(2, 5); // "llo, "
```
注意,substr() 函数返回的是一个新的字符串,原字符串不会被修改。
c++截取字符串函数
在C++中,可以使用多种方法来截取字符串。以下是一些常用的方法:
1. substr()函数:substr()函数可以从一个字符串中提取子字符串。它接受两个参数,第一个参数是起始位置,第二个参数是要提取的子字符串的长度。示例代码如下:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, World!";
std::string sub = str.substr(7, 5); // 从位置7开始提取长度为5的子字符串
std::cout << sub << std::endl; // 输出 "World"
return 0;
}
```
2. getline()函数:getline()函数可以从一个字符串中按照指定的分隔符提取子字符串。示例代码如下:
```cpp
#include <iostream>
#include <string>
#include <sstream>
int main() {
std::string str = "Hello, World!";
std::istringstream iss(str);
std::string sub;
std::getline(iss, sub, ','); // 按照逗号分隔提取子字符串
std::cout << sub << std::endl; // 输出 "Hello"
return 0;
}
```
3. find()和substr()函数的组合:可以使用find()函数找到指定子字符串的位置,然后再使用substr()函数截取子字符串。示例代码如下:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, World!";
size_t pos = str.find(","); // 找到逗号的位置
std::string sub = str.substr(0, pos); // 从开头截取到逗号位置的子字符串
std::cout << sub << std::endl; // 输出 "Hello"
return 0;
}
```
这些是C++中常用的截取字符串的方法。你可以根据具体的需求选择适合的方法来截取字符串。