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 |
write a program that takes two numbers from user that prints the smallest number
Is python better than c++?
What is the most useful programming language?
what is the difference between linear list linked representaion and linked representation? what is the purpose of representing the linear list in linked represention ? is it not avoiding rules of linear represention?
Which operator can not be overloaded in C++?
What is meant by a delegate?
What is isdigit c++?
What operator is used to access a struct through a pointer a) >> b) -> c) *
What is using namespace std in cpp?
Write a program for Divide a number with 2 and Print the output ( NOTE: Check for divide by zero error).
Explain Memory Allocation in C/C++ ?
What is the difference between std::vector and std::list