C++: MaString

 

Mise en oeuvre de la classe MaString

Mettre en oeuvre la classe MaString suivant la définition donnée ci-dessous. 

#ifndef __MASTRING_H__
#define __MASTRING_H__

#include <stddef.h>
#include <ostream.h>
#include <stdio.h>

const size_t MaStringMax = 1024;

class MaString {
  friend ostream & operator << (ostream &, const MaString &);

public:
  enum caseCompare  {exact, ignoreCase};

  MaString();              
  MaString(const MaString & S);
  MaString(const char * a);   
  MaString(char c);
  ~MaString();

  int          compareTo(const MaString &, caseCompare cmp = exact) const;
  void         copyFrom(const MaString & s); // copie de la chaine s
  MaString     copy() const; // retourne une copie
  const char * c_str() const; // le buffer 
  size_t       size() const; // la longueur
  MaString&    prepend(const char* cs); // insertion en tete cs
  MaString&    prepend(const char* cs, size_t N); // insertion en tete de N car. depuis cs
  MaString&    prepend(const MaString& s); // insertion en tete s
  MaString&    prepend(const MaString& s, size_t N); // insertion en tete de N car. depuis s
  MaString&    append(const char*); // ajout de cs
  MaString&    append(const char* cs, size_t N); // ajout de N car. depuis cs
  MaString&    append(const MaString& s); // ajout de s
  MaString&    append(const MaString& s, size_t N); // ajout de N car. depuis s
  MaString&    append(char); // ajout d'un caractere

private:
  char data_[MaStringMax]; // un buffer de taille fixe
};
#endif /* __MASTRING_H__ */