Write a String class which has:
1) default constructor
2) copy constructor
3) destructor
4) equality operator similar to strcmp
5) constructor which takes a character array parameter
6) stream << operator
Answers were Sorted based on User's Feedback
Answer / jp
#include "stdafx.h"
#include <iostream>
using namespace std;
/********************************************************************/
//Write a String class which has:
//1) default constructor
//2) copy constructor
//3) destructor
//4) equality operator similar to strcmp
//5) constructor which takes a character array parameter
//6) stream << operator
/********************************************************************/
class strclass
{
public:
strclass()
{
_string = new char();
}
strclass(const strclass& strcls)
{
_string = strcls._string;
}
bool operator==(const strclass& cls)
{
if(this->_string == cls._string)
return true;
else
return false;
}
strclass(char* arr)
{
_string = arr;
}
~strclass()
{
//delete _string;
_string = NULL;
}
char* operator<<(const strclass& cls)
{
return this->_string = cls._string;
}
private:
char* _string;
};
int main()
{
cout << "Hi";
strclass str1("string1");
strclass str2("string1");
strclass str("string2");
if (str1 == str2)
cout << "Strings are Same";
else
cout << "Strings are Different";
cout << (str1 << str);
return 0;
}
Is This Answer Correct ? | 1 Yes | 0 No |
Answer / stevewu
#include <iostream>
#include <string.h>
using namespace std;
class ownStrcmp
{
public:
ownStrcmp(){}
ownStrcmp(ownStrcmp& rhs);
ownStrcmp(char* instring){ _string = instring;}
void setString(char* instring){ _string = instring;}
char* getString(){return _string ;}
~ownStrcmp(){}
int operator == ( ownStrcmp &rhs);
private:
char* _string;
bool _ret;
};
ownStrcmp::ownStrcmp(ownStrcmp& rhs)
{
_string = rhs._string;
}
int ownStrcmp::operator == ( ownStrcmp &rhs)
{
_ret = true;
if(this == &rhs)
{
return _ret;
}
int i = 0;
while( _string[i] != NULL){ ++i;}
int stringLength = i;
for (int j=0;j<stringLength;j++)
{
if(_string[j]!=rhs._string[j]) _ret=false;
}
return _ret;
}
int main()
{
ownStrcmp string1("hello world");
ownStrcmp string2("hello world");
if (string1 == string2)
cout<<"result is true"<<endl;
else
cout<<"result is false"<<endl;
return 0;
}
Is This Answer Correct ? | 5 Yes | 5 No |
Do you know about latest advancements in C++ ?
0 Answers Agilent, ZS Associates,
what is the order of initialization for data?
10 Answers Amazon, TCS, Wipro,
What are the defining traits of an object-oriented language?
Explain the operation of overloading of an assignment operator.
In the derived class, which data member of the base class are visible?
What are the advantages of prototyping?
Is c++ still being used?
What is the arrow operator in c++?
Explain virtual destructor?
What will the line of code below print out and why?
What do you mean by static variables?
What is this pointer in c++?