1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Masteriza [31]
3 years ago
5

Write a string class. To avoid conflicts with other similarly named classes, we will call our version MyString. This object is d

esigned to make working with sequences of characters a little more convenient and less error-prone than handling raw c-strings, (although it will be implemented as a c-string behind the scenes). The MyString class will handle constructing strings, reading/printing, and accessing characters. In addition, the MyString object will have the ability to make a full deep-copy of itself when copied.

Computers and Technology
1 answer:
kipiarov [429]3 years ago
4 0

Answer:

Check the explanation

Explanation:

myString. h:

#include <iostream>

using namespace std;

#ifndef _MYSTRING_H_

#define _MYSTRING_H_

class myString{

private:

  char *str;

public:

  myString();

  myString(const char *s);

  void operator = (myString &s);

  int length();

  friend ostream &operator <<(ostream &out, myString &s);

  friend istream &operator >>(istream &out, myString &s);

  bool operator <(myString &s);

  bool operator <=(myString &s);

  bool operator >(myString &s);

  bool operator >=(myString &s);

  bool operator ==(myString &s);

  bool operator !=(myString &s);

};

#endif

myString. cpp:

#include "myString. h"

#include <cstring>

myString::myString(){

  str = new char;

  str[0] = '\0';

}

myString::myString(const char *s){

  int len = strlen(s);

  str = new char[len + 1];

  for(int i = 0; i < len; ++i){

      str[i] = s[i];

  }

  str[len] = '\0';

}

void myString::operator = (myString &s){

  s.str = new char[length() + 1];

  for(int i = 0; i < length(); ++i){

      s.str[i] = str[i];

  }

  s.str[length()] = '\0';

}

int myString::length(){

  return strlen(str);

}

ostream &operator <<(ostream &out, myString &s){

  out << s.str;

  return out;

}

istream &operator >>(istream &in, myString &s){

  in >> s.str;

  return in;

}

bool myString::operator < (myString &s){

  return strcmp(str, s.str) < 0;

}

bool myString::operator <= (myString &s){

  return strcmp(str, s.str) <= 0;

}

bool myString::operator > (myString &s){

  return strcmp(str, s.str) > 0;

}

bool myString::operator >= (myString &s){

  return strcmp(str, s.str) >= 0;

}

bool myString::operator == (myString &s){

  return strcmp(str, s.str) == 0;

}

bool myString::operator != (myString &s){

  return strcmp(str, s.str) != 0;

}

main. cpp:

#include "myString.h"

#include <iostream>

using namespace std;

int main(){

  myString s1, s2;

  cout << "Enter first string: ";

  cin >> s1;

  cout << "Enter second string: ";

  cin >> s2;

  cout << "you entered: " << s1 << " and " << s2 << endl;

  myString s3 = s1;

  cout << "Value of s3 is " << s3 << endl;

  if(s1 < s2){

      cout << s1 << " < " << s2 << endl;

  }

  if(s1 <= s2){

      cout << s1 << " <= " << s2 << endl;

  }

  if(s1 > s2){

      cout << s1 << " > " << s2 << endl;

  }

  if(s1 >= s2){

      cout << s1 << " >= " << s2 << endl;

  }

  if(s1 == s2){

      cout << s1 << " == " << s2 << endl;

  }

  if(s1 != s2){

      cout << s1 << " != " << s2 << endl;

  }

  return 0;

}

Kindly check the output below.

You might be interested in
What is the name of the process that weighs the alternatives, gathers all necessary information, and can ultimately lead you to
blondinia [14]
This process is known as decision making.
8 0
3 years ago
Read 2 more answers
Which of the following is a Web browser? Exit Test A Windows B Comcast High-Speed C Microsoft Internet Explorer D Modem
yulyashka [42]
C. Internet explorer
Hope this helps :) please thank!
8 0
3 years ago
Changing the color of the text in your document is an example of
nexus9112 [7]

Answer:

???????????uhhh text change..?

Explanation:

7 0
3 years ago
Read 2 more answers
You need to update your router settings, so you log into the administration panel, Whose Internet protocol (IP) address is 192.1
devlian [24]

Answer:

D

Explanation:

5 0
3 years ago
A student will not be allowed to sit in exam if his/her attendance is less than 75% .
Oxana [17]

Answer:

Sorry, this is too vague to understand as you don’t have any charts, graphs, or anything

Explanation:

6 0
3 years ago
Other questions:
  • What is a possible style of formatting your company could prefer?
    14·2 answers
  • The most frequently applied heuristic in problem solving is a(an) _________, which involves repeated tests for differences betwe
    13·1 answer
  • How do you bookmark a website in each of the internet browsers?
    9·1 answer
  • What are use class diagram, use case description and activity diagrams for use cases?
    7·1 answer
  • Jason Is Working On A Video Science Project. As He Is Working On It, He Saves The Project.
    5·1 answer
  • Why is my computer acting up?
    14·1 answer
  • What determines the color of a rock?
    11·2 answers
  • A student is curious about how a Web site appears on his computer screen. On a piece of paper,
    8·1 answer
  • Is this statement true or false?
    5·1 answer
  • Place a check next to each of the choices that describe an example of proper ergonomics. (more than 1 answer)
    7·2 answers
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!