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

相关推荐

  1. C++ 对 const 浅显理解

    2024-03-09 22:24:05       43 阅读
  2. Spring 初学者遇到问题

    2024-03-09 22:24:05       44 阅读
  3. 如何使用C++字符串类(如std::string

    2024-03-09 22:24:05       24 阅读
  4. C/C++输入输出 | 简单易懂

    2024-03-09 22:24:05       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-09 22:24:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-09 22:24:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-09 22:24:05       87 阅读
  4. Python语言-面向对象

    2024-03-09 22:24:05       96 阅读

热门阅读

  1. c语言:求逆序后四位

    2024-03-09 22:24:05       35 阅读
  2. python3 多进程讲解 multiprocessing

    2024-03-09 22:24:05       39 阅读
  3. flink:自定义数据分区

    2024-03-09 22:24:05       44 阅读
  4. Python中的new和call方法

    2024-03-09 22:24:05       45 阅读
  5. 物联网常见协议篇

    2024-03-09 22:24:05       157 阅读