21xrx.com
2024-12-29 00:56:18 Sunday
登录
文章检索 我的文章 写文章
DevC++的String源代码
2023-06-23 18:38:55 深夜i     --     --
DevC++ String 源代码

DevC++是一个非常流行的C++编程环境,它可以帮助开发者轻松地编写和调试C++程序。在这个环境中,开发者可以使用一种名为“String”的数据类型来方便地处理字符串。

在DevC++中,String数据类型被定义为一个类。该类有许多实用的成员函数,如append(), assign()和insert()等,可以方便地进行字符串操作。下面是DevC++中的String类的源代码:


#ifndef STRING_H_INCLUDED

#define STRING_H_INCLUDED

#include <cstring>

#include <cctype>

#include <cstdlib>

#include <iostream>

class String {

  friend String operator+(const String&, const String&);

public:

  String();

  String(const char*);

  String(const String&);

  ~String();

  int length() const return size;

  bool empty() const return size == 0;

  void resize(int);

  void reserve(int);

  void swap(String&);

  String& operator=(const char*);

  String& operator=(const String&);

  String& operator+=(const char*);

  String& operator+=(const String&);

  char& operator[](int i) { return pstr[i]; }

  const char& operator[](int i) const { return pstr[i]; }

  int compare(const String&) const;

  int compare(const char*) const;

  int find(const String&, int spos = 0) const;

  int find(const char*, int spos = 0) const;

  int find(char, int spos = 0) const;

  String substr(int, int len) const;

  String& insert(int, char);

  String& insert(int, const String&);

  String& insert(int, const char*);

  String& erase(int, int len = npos);

  static const int npos = -1;

  friend std::ostream& operator<<(std::ostream&, const String&);

  friend std::istream& operator>>(std::istream&, String&);

private:

  char* pstr;

  int size;

  int capacity;

  static char* empty_string;

  static const int init_size = 15;

  static const int extend_size = 15;

  void do_copy(const char*, int);

  void do_copy(const String&, int);

  void do_fill(int, char);

  void do_reserve(int);

  void do_relocate(const char*, int, int);

  void do_move(String&);

  void do_swap(String&);

  enum { MAX_SHORT_LENGTH = init_size + sizeof(char*) - 1 };

};

#endif // STRING_H_INCLUDED

可以看到,这个类包含了许多实现字符串操作的成员函数,例如find()可用于查找子字符串在字符串中的位置,insert()可用于将一个字符串插入到另一个字符串中,以及substr()可用于从一个字符串中提取一个子字符串。此外,该类还包含了重载的运算符,例如“=”,“+=”,以及“[]”,这些运算符可以让开发者更加方便地使用该类。

总之,DevC++中的String类可以方便地处理字符串,为开发者提供了更加灵活的编程体验。同时,它也可以让开发者更好地了解面向对象编程的一些基本理念,例如封装、继承、多态等等。如果您正在学习C++编程,那么DevC++中的String类将会是一个重要的工具。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复