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
Help me please and thanks
Yuri [45]

Answer:

b

Explanation:

6 0
4 years ago
What do you think of the extensive use of the non-diegetic sound in Return of the Jedi (1983)?
Jobisdone [24]

FOR ANYONE THAT WANTS TO STUDY AND CHILL SCREENSHOT BEFORE KATLE DELEATES THIS

meeting id:  932-8097-2909

password:  z99LtX

Explanation:

4 0
3 years ago
Write the full forms of the following:
Grace [21]

Answer:

The abbreviation of the given points is described below.

Explanation:

  • GIGO stands for "Garbage In/Garbage Out".
  • MHz stands for "Megahertz".
  • BBS stands for "Bulletin Board System".
  • CBT stands for "Computer-based training".
  • KB stands for "Knowledge Base".
  • ICU stands for "Intensive Care Unit".
  • CAI stands for "Common Air Interface".
  • WBT stands for "Web-based training".
  • IPM stands for "Intel Power Monitor".
  • CAS stands for "Channel Associated Signaling" and "Customer Alert Signal".
  • ICT stands for "Information and Communication Technology".
  • ATM stands for "Automatic Teller Machine".
5 0
3 years ago
Given the following classes and their objects:
Andrej [43]

Answer:

The answer is "Option b"

Explanation:

In the given code three-class C1, C2, and C3 are declared, in which C2  and C3 extend the class C1. In the next line, C2 and C3 object are created, that is c2 and c3. and in the last line c2 class object holds two-class C2, C1, and one object c3 value, this code will give runtime error because it can't cast object from sibling class, and wrong choices can be defined as follows:

  • In option a, It is not correct because it can't cast c3 object into c2 object.
  • In option c, It is not correct because it performs multiple casting in nested forms.
  • In option d, It is wrong because the statement is not correct.
3 0
3 years ago
If you have an unstable investment and after 5 years you have 100 dollars less than you started with, is your IRR positive or ne
Minchanka [31]

Answer:

Anyone who understands basic time-value-of-money concepts can easily grasp the mathematical definition of internal rate of return. Pre-programmed calculators and spreadsheets make it easy to find IRR for a set of cash flow figures. Explaining the IRR message, however, is a challenge for nearly everyone.

4 0
2 years ago
Other questions:
  • The ____ is a new feature in versions of microsoft office, starting with office 2007; it consists of tabs, which contain groups
    5·1 answer
  • What are the first and the last physical memory addressesaccessible using
    10·1 answer
  • According to the author, there are five hedging strategies organizations can pursue. One of them is: Select one: a. commit with
    5·1 answer
  • Which access control principle specifies that no unnecessary access to data exists by regulating members so they can perform onl
    11·1 answer
  • Extinction of a species is always a negative impact on the Earth.<br><br> True<br> False
    8·1 answer
  • Explain the importance of mobile computing in communication​
    5·1 answer
  • 4.12 LAB: Using math methods Given three floating-point numbers x, y, and z, output x to the power of z, x to the power of (y to
    10·1 answer
  • What blockchain implementation resulted from bitcoin’s rejection of a recommendation to enhance its scripting language support?
    9·1 answer
  • Using a text editor, create a file that contains a list of at least 15 six-digit account numbers. Read in each account number an
    7·1 answer
  • I need to send this in ASAP
    6·2 answers
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!