Skip to content

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"intmain() {
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

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages