#include <iostream>
#include <print>

import CString;

// main() Funktion
int main()
{
    // Zwei String Objekte definieren
    CString myString1{ "Eine Investition " };
    CString myString2;

    // Beide Strings ausgeben
    std::println("Ausgangs-Strings:\n\tString1: '{}'\n\tString2: '{}'",
        myString1.GetString(), myString2.GetString());

    // Zum ersten String Objekt char-String hinzufügen
    myString1.AddString("in Wissen ");
    // Zum zweiten String Objekte char-String hinzufügen
    myString2.AddString("bringt immer noch die besten Zinsen");

    // Beide Strings ausgeben
    std::println("Nach AddString():\n\tString1: '{}'\n\tString2: '{}'",
        myString1.GetString(), myString2.GetString());

    // Neues String Objekt definieren und mit
    // 1. String initialisieren
    CString myString3{ myString1 };
    // Zeilenvorschub in String einfuegen
    myString3.AddString("\n");
    // und zweites String Objekt hinzufuegen
    myString3.AddString(myString2);

    // Neues String Objekt jetzt ausgeben
    std::println("Neuer String:\n\tString3: '{}'", myString3.GetString());
}
