c++中string的使用!!!(适合初学者 浅显易懂)

我们先初步的认识一下string,string底层其实是一个模版类

typedef basic_string<char> string;

我们先大致的把string的成员函数列举出来

class string

{

        private:

        char * str;

        size_t size;

        size_t capacity;

};

1.string的六大默认函数

1.1 构造函数、拷贝构造

注:以下只介绍常用的几个构造函数 以下同理

1. string();

2. string(const char *s); 

3. string(const string& str); 拷贝构造

1.2析构函数

~string();

1.3赋值运算符重载

1.string& operator=(const char* s);

2.string& operator=(const string& str);

3.string& operator=(char c);

2.string的遍历

2.1下标遍历

底层物理空间是连续的情况下,我们可以使用下标遍历

string& operator[] (size_t pos);

const string& operator[] (size_t pos) const;

2.2 iterator迭代器

typedef char* iterator

typedef const char* const_iterator

返回第一个元素

iterator begin();

const_iterator begin() const;

返回最后一个元素

iterator end();

const_iterator end() const;

2.3范围for

范围for看着很高大上,其实底层跟迭代器差不多的用法

3.string中的capacity

size_t size() const; 返回string中的有效字符个数

void resize(size_t n); 调整string中的有效字符个数

size_t capacity() const; 返回string中能存储有效字符的空间

void reserve(size_t n = 0); 调整string中能存储有效字符的空间

注意:不同的编译器扩容机制会有些许不同

void clear(); 清除当前字符串内容,既将size赋值为0

4.string中的增删查改

4.1插入

尾插:

string& operator+= (const string& str) ;

string& operator+=(const char* s);

string& operator+=(const cahr c);

void push_back(cahr c);

头插:

在pos位置上插入n个字符字符c/字符串str,并返回该字符的位置

string& insert(size_t pos, size_t n,char c); 

string& insert(size_t pos, const char* str);

 4.2删除

删除从pos位置开始的len个元素,若len太大,则删除全部元素        

string& erase(size_t pos = 0,size_t len = npos); 

4.3查找string中的字符或者字符串

size_t find (char c, size_t pos = 0) const; 返回c在string中从pos位置开始第一次出现的位置

size_t find (const char* s, size_t pos = 0) const; 返回子串s在string中从pos位置开始第一次出现的位置

4.4改变string中一段字符

string & replace(size_t pos,size_t len,const string* str);  将pos位置开始,跨越len个字符替换为str

  • 48
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 27
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值