string头文件函数用法大总结

本文详细介绍了C++中字符串的声明方式及各种操作函数的使用方法,包括赋值、连接、插入、删除等常见操作,并提供了C语言兼容的头文件对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++对应的头文件:

#include <cstring>

C对应的头文件:

#include <string.h>
  • 声明一个字符串变量

1)string s;//声明s字符串
2)string s(str);//str赋给s
3)string s(str,stridx) //将字符串str内“始于位置stridx”的部分当作字符串的初值
4)string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值
5)string s(num,c) //生成一个字符串,包含num个c字符
6)string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值
7)s.~string() //销毁所有字符,释放内存

  • 字符串操作函数

a) =,assign()     //赋以新值
b) swap()     //交换两个字符串的内容
c) +=,append(),push_back() //在尾部添加字符
d) insert() //插入字符
e) erase() //删除字符
f) clear() //删除全部字符
g) replace() //替换字符
h) + //串联字符串
i) ==,!=,<,<=,>,>=,compare()    //比较字符串
j) size(),length()    //返回字符数量
k) max_size() //返回字符的可能最大个数
l) empty()    //判断字符串是否为空
m) capacity() //返回重新分配之前的字符容量
n) reserve() //保留一定量内存以容纳一定数量的字符
o) [ ], at() //存取单一字符
p) >>,getline() //从stream读取某值
q) <<    //将谋值写入stream
r) copy() //将某值赋值为一个C_string
s) c_str() //将内容以C_string返回
t) data() //将内容以字符数组形式返回
u) substr() //返回某个子字符串
v)查找函数
w)begin() end() //提供类似STL的迭代器支持
x) rbegin() rend() //逆向迭代器
y) get_allocator() //返回配置器

### C++ 中 `string` 头文件的使用方法及包含方式 在 C++ 编程中,`string` 是一个非常重要的标准库头文件,它提供了对字符串操作的支持。以下是关于如何正确包含和使用 `string` 头文件的详细说明。 #### 包含 `string` 头文件 为了使用 C++ 标准库中的 `std::string` 类型,必须在代码中包含 `<string>` 头文件。注意,这里不是 `string.h`,因为 `string.h` 是 C 风格的字符串头文件,主要用于处理字符数组 `char*` 的函数[^1]。 以下是一个简单的示例,展示如何包含并使用 `<string>` 头文件: ```cpp #include <iostream> #include <string> // 包含 C++ 标准库中的 string 头文件 using namespace std; int main() { string greeting = "Hello, World!"; // 声明一个 C++ 字符串 cout << greeting << endl; // 输出字符串 return 0; } ``` #### 声明和初始化 `std::string` `std::string` 提供了多种声明和初始化的方式。以下是一些常见的用法: - 使用默认构造函数创建空字符串: ```cpp string emptyString; // 创建一个空字符串 ``` - 使用字符串字面量初始化: ```cpp string literalString = "C++ Programming"; // 使用字符串字面量初始化 ``` - 使用另一个字符串对象进行初始化: ```cpp string original = "Original String"; string copyString = original; // 使用另一个字符串对象初始化 ``` #### 转换为 C 风格字符串 如果需要将 `std::string` 转换为 C 风格字符串(即 `const char*`),可以使用 `c_str()` 函数。需要注意的是,返回的指针指向的内容是只读的,不能直接修改[^3]。 以下是一个示例: ```cpp #include <iostream> #include <string> using namespace std; int main() { string cppString = "C++ String"; const char* cStyleString = cppString.c_str(); // 转换为 C 风格字符串 cout << cStyleString << endl; return 0; } ``` #### 常见操作 `std::string` 提供了许多内置的操作函数,例如连接、查找、替换等。以下是一些常见操作的示例: - 字符串连接: ```cpp string str1 = "Hello"; string str2 = "World"; string result = str1 + " " + str2; // 连接两个字符串 ``` - 查找子字符串: ```cpp string text = "This is a sample text."; size_t position = text.find("sample"); // 查找子字符串的位置 if (position != string::npos) { cout << "Substring found at position: " << position << endl; } ``` - 替换子字符串: ```cpp string sentence = "C++ is fun."; sentence.replace(7, 2, "awesome"); // 替换从索引 7 开始的 2 个字符 cout << sentence << endl; // 输出:C++ is awesome. ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值