c++ string截断
时间: 2023-08-18 12:05:44 浏览: 165
在C语言中,可以使用string的substr函数来截断字符串。substr函数的原型为:string substr(int pos = 0, int n) const;其中pos表示截取的起始位置,n表示截取的长度。如果不填n,则表示截取到字符串的末尾。以下是一个示例代码:
#include <iostream>
#include <string>
using namespace std;
int main() {
string s = "Hello World!";
string sub = s.substr(2); // 从下标为2的位置开始截取,截取到末尾
cout << sub << endl; // 输出 "llo World!"
sub = s.substr(0, 5); // 从下标为0的位置开始截取,截取长度为5
cout << sub << endl; // 输出 "Hello"
return 0;
}
在上述代码中,我们使用substr函数从字符串s中截取了两个子串。第一个子串从下标为2的位置开始截取,截取到末尾;第二个子串从下标为0的位置开始截取,截取长度为5。输出结果分别为"llo World!"和"Hello"。
相关问题
c++ string 长度
C++中获取字符串的长度可以使用`strlen`函数。`strlen`函数位于`<cstring>`(或者`<string.h>`)头文件中,可以用于计算以空字符('\0')结尾的字符串的长度。以下是一个示例:
```cpp
#include <iostream>
#include <cstring>
int main() {
const char* str = "Hello, C++!";
int length = strlen(str);
std::cout << "Length of the string: " << length << std::endl;
return 0;
}
```
输出结果将是:
```
Length of the string: 13
```
请注意,`strlen`函数只能计算以空字符结尾的字符串的长度,如果字符串中包含空字符,则会截断计算。如果要处理非以空字符结尾的字符串,可以使用`std::string`类提供的成员函数`length`或者`size`。
c++ string 构造函数
在 C++ 中,`std::string` 类型是一个动态字符串容器,它提供了一系列构造函数用于创建字符串。以下是几种常见的 `std::string` 构造函数:
1. **空初始化**:
```cpp
std::string(); // 创建一个空字符串
```
2. **初始值列表**:
```cpp
std::string str = ""; // 直接赋空字符序列
std::string str = "Hello World"; // 赋予具体的字符序列
```
3. **复制构造函数**:
```cpp
std::string str1 = "Original"; // 复制构造另一个字符串的内容
std::string str2(str1); // 或者直接从已有字符串拷贝内容
```
4. **派生自其他字符序列**:
```cpp
char ch[] = "Derived"; // 字符数组
std::string str3(ch); // 将字符数组转换为字符串
const char* pc = "Another string";
std::string str4(pc); // 使用指向常量字符的指针
```
5. **初始长度并填充**:
```cpp
std::string str5(10, 'X'); // 创建一个包含10个 'X' 的字符串
```
6. **指定字符数的填充**:
```cpp
std::string str6("Hello", 5); // 只保留前5个字符(截断)
```
7. **从其他标准库类型转换**:
```cpp
std::string numStr = to_string(42); // 从整数转换成字符串
```
阅读全文