C++ string使用方法

string是C++标准模板库中专门用于字符串处理的数据结构类型。它并不是 C++的基本数据类型,它是 C++标准模板库中的一个“类”。若要使用 string 对象,则必须包含头文件#include 。

1. 初始化
常用的初始化有以下几种,带等号的是拷贝初始化,


string str1("hello world");    // hello world
string str2  = "hello world";  // hello world
string str3(str2);             // hello world
string str4 = str3;            // hello world
string str5(5,'d');            // ddddd
string str6(str2, 6);          // world,从str2的第6个字符开始到结束,拷贝到str6中
string str7(str2, 0, 5);       // hello, 从str2的第0个字符开始拷贝5个字符到str7中
char buff[] = "hello sorld";
string str8(buff, 5);          // hello, 拷贝buff的前5个字符到str8中

特殊数据结构成员
static const size_t npos = -1;

2. string 的基本操作

- 长度

size_t length() const noexcept;   // 得到字符串的长度
size_t size() const noexcept;     // 得到字符串的长度
size_t max_size() const noexcept; // 得到字符串可以达到的最大长度

- 插入
在指定的位置后面插入一个字符串

// 在pos后面插入字符串str
string& insert (size_t pos, const string& str);             
// 在pos后面插入str的subpos处往后的sublen长度的字符串
string& insert (size_t pos, const string& str, size_t subpos, size_t sublen); 
// 在pos后面插入字符数组s
string& insert (size_t pos, const char* s);                           
// 在pos后面插入字符数组s的前n个字符
string& insert (size_t pos, const char* s, size_t n);                       
// 在pos后面插入n个字符c
string& insert (size_t pos, size_t n, char c);                            
// 在p后面插入n个字符c  
iterator insert (const_iterator p, size_t n, char c);                       
// 在p后面插入一个字符c
iterator insert (const_iterator p, char c);  
// 在p后面插入迭代器first到last之间的字符串                                
template <class InputIterator>
iterator insert (iterator p, InputIterator first, InputIterator last);    
// 在p后面插入il内的所有字符
string& insert (const_iterator p, initializer_list<char> il);                 

- 替换

把指定的位置后指定长度的字符串替换成另一个字符串

// 把pos后面len长度的字符串替换成str
string& replace (size_t pos, size_t len, const string& str);
// 把i1和i2之间的内容替换成str
string& replace (const_iterator i1, const_iterator i2, const string& str);

// 把pos后面len长度的字符串替换成字符串str的subpos后面的sublen个长度的字符串
string& replace (size_t pos, size_t len, const string& str, size_t subpos, size_t sublen);

// 把pos后面len长度的字符串替换成字符数组s里的所有内容
string& replace (size_t pos, size_t len, const char* s);
// 把i1和i2之间的字符串替换成数组s里的所有内容
string& replace (const_iterator i1, const_iterator i2, const char* s);

// 把pos后面len长度的字符串替换成字符数组s里面前n个字符
string& replace (size_t pos, size_t len, const char* s, size_t n);
// 把i1和i2之间的字符串替换成字符数组s里面的前n个字符
string& replace (const_iterator i1, const_iterator i2, const char* s, size_t n);

// 把pos后面len长度的字符串替换成n个字符c
string& replace (size_t pos, size_t len, size_t n, char c);
// 把i1和i2之间的字符串替换成n个字符c
string& replace (const_iterator i1, const_iterator i2, size_t n, char c);

// 把i1和i2之间的字符串替换成迭代器f
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值