Skip to content

Instantly share code, notes, and snippets.

@drewverlee
Created January 21, 2013 03:45
Show Gist options
  • Save drewverlee/4583458 to your computer and use it in GitHub Desktop.
Save drewverlee/4583458 to your computer and use it in GitHub Desktop.
c++
#include "Text.h"
// **************************************************************
// Name : Drew Verlee
// Acess ID : fd4544
// Assign : lab01
// **************************************************************
Text::Text ( const char *charSeq)
{
bufferSize = (unsigned)strlen(charSeq);
buffer = new char [bufferSize];
for(int i = 0; i <= bufferSize; i++){
buffer[i] = charSeq[i];
}
}
Text::Text ( const Text &other )
{
bufferSize = other.getLength();
buffer = new char[bufferSize];
for(int i = 0; i <= bufferSize; i++){
buffer[i] = other[i];
}
}
void Text::operator = ( const Text &other )
{
if (this != &other){
delete [] buffer;
bufferSize = other.getLength();
buffer = new char[bufferSize];
for (int i = 0; i < bufferSize; i++){
buffer[i] = other[i];
}
}
}
Text::~Text ()
{
//...
delete [] buffer;
}
int Text::getLength () const
{
return bufferSize;
}
char Text::operator [] ( int n ) const
{
if (n >= 0 && n < bufferSize){
return buffer[n];
}
else{
return '\0';
}
}
void Text::clear ()
{
delete [] buffer;
buffer = new char[bufferSize];
for(int i=0; i < bufferSize;i++){
buffer[i] = ' ';
}
}
void Text::showStructure () const
{
for (int i=0;i < bufferSize;i++){
cout << buffer[i];
}
cout << endl;
}
Text Text::toUpper( ) const
{
Text temp(buffer);
for(int i=0; i < bufferSize; i++){
if((buffer[i] > 96) && (buffer[i] < 123)){
temp.buffer[i] = char(buffer[i] - 32);
}
}
return temp;
}
Text Text::toLower( ) const
{
Text temp(buffer);
for(int i=0; i < temp.getLength(); i++){
if((buffer[i] > 64) && (buffer[i] < 91)){
temp.buffer[i] = char(buffer[i] + 32);
}
}
return temp;
}
bool Text::operator == ( const Text& other ) const
{
if(bufferSize == other.getLength()){
if(bufferSize == 0){
return true;
}
else{
for(int i = 0; i < bufferSize; i++){
if(buffer[i] != other.buffer[i]){
return false;
}
}
return true;
}
}
else{
return false;
}
}
bool Text::operator < ( const Text& other ) const
{
if (other.getLength()){
if(bufferSize){
for(int i = 0; i < bufferSize; i++){
if (buffer[i] > other.buffer[i]){
return false;
}
}
if((other.getLength() < bufferSize) || (other.getLength() == bufferSize)){
return false;
}
else{
return true;
}
}
else{
return true;
}
}
return false;
}
bool Text::operator > ( const Text& other ) const
{
if(bufferSize){
if(other.getLength()){
for(int i = 0; i < other.getLength(); i++){
if (buffer[i] < other.buffer[i]){
return false;
}
}
if((other.getLength() > bufferSize) || (other.getLength() == bufferSize)){
return false;
}
else{
return true;
}
}
else{
return true;
}
}
return false;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment