Skip to content

A custom C++ implementation of the std::string class with full memory management, operator overloading, and OOP design principles

License

Notifications You must be signed in to change notification settings

ZohaibCodez/text-string-clone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📦 Custom C++ String Class — text

A lightweight and educational reimplementation of the C++ std::string class for learning purposes. Built from scratch using only core C++ features — no STL string backend.


📚 Table of Contents


🔧 Features

  • Manual dynamic memory management (new/delete)
  • Deep copy and move semantics (Rule of Five)
  • Initializer list support
  • Substring, insert, erase, replace, and append
  • Comparison operators: ==, !=, <, >, <=, >=
  • Safe at(), find(), and substr() methods
  • Operator overloading: +, +=, [], =
  • Stream I/O with cin and cout
  • Exception-safe operations

📁 Project Structure


TextCloneProject/
├── include/         # Header files
│   └── text.h
├── src/             # Class implementation
│   └── text.cpp
├── tests/           # Usage examples
│   └── main.cpp
├── bin/             # Output binaries
├── Makefile         # For build automation
└── README.md        # You're reading it!

🚀 Getting Started

🔨 Build the Project

make         # Builds the project
make run     # Runs the demo
make clean   # Cleans build files

🧪 Example Usage

#include "text.h"

int main() {
    text t1 = "Hello";
    text t2 = "World";
    text t3 = t1 + " " + t2;
    std::cout << "t3: " << t3 << std::endl;
}

📌 Sample Output

t1: Hello
t2:  World
t3 (t1 + t2): Hello World
Length of t3: 11
Capacity of t3: 12
...

📚 Skills Demonstrated

  • Object-Oriented Programming (OOP)
  • Rule of Five in C++
  • Operator Overloading
  • Exception handling
  • Manual Memory Management
  • Header and Source File Separation

💡 Why This Project?

This project is part of my second-semester coursework at PUCIT, developed to master advanced C++ concepts like dynamic memory, object lifecycles, and class design without relying on the Standard Library string class.


🧑‍💻 Author

Mr. Zohaib 🔗 LinkedIn


📜 License

This project is licensed under the MIT License.

About

A custom C++ implementation of the std::string class with full memory management, operator overloading, and OOP design principles

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published