int main(){ MeinString h("Haallllooooooo"); MeinString b; b=h; cout<<(b.c_str())<<endl; cout<<b[1]<<endl; cout<<b<<endl; }
int main() { MeinString einString("Hallo"); anzeigen(cout, einString); cout << endl; // Zuweisen MeinString zweiterString; zweiterString.reserve(20); zweiterString.assign(einString); // dank reserve() kein new erforderlich cout << "zugewiesener String: "; anzeigen(cout, zweiterString); cout << endl; cout << "zweiterString.length() : " << zweiterString.length() << endl; cout << "zweiterString.capacity() : " << zweiterString.capacity() << endl; cout << "nach shrink_to_fit(): " << endl; zweiterString.shrink_to_fit(); cout << "zweiterString.length() : " << zweiterString.length() << endl; cout << "zweiterString.capacity() : " << zweiterString.capacity() << endl; einString.insert(5, " MASE"); einString.insert(8, "T"); anzeigen(cout, einString); cout << endl; }
int main() { MeinString einString("Hallo"); anzeigen(cout, einString); cout << "\nzeichenweise Ausgabe:\n"; for(size_t i = 0; i < einString.length(); ++i) cout << '*' << einString.at(i); cout << '*' << endl; // Zuweisen MeinString zweiterString; zweiterString.assign(einString); cout << "zugewiesener String: "; anzeigen(cout, zweiterString); cout << endl; // Wird vom Compiler akzeptiert, ist aber falsch: zweiterString = einString; // weil noch kein eigener Zuweisungsoperator existiert (s. Text) }
int main() { MeinString einString("Hallo"); anzeigen(cout, einString); // Zuweisen MeinString zweiterString; zweiterString.reserve(20); zweiterString.assign(einString); // dank reserve() kein new erforderlich cout << "\n zugewiesener String: "; anzeigen(cout, zweiterString); cout << endl; cout << "zweiterString.length() : " << zweiterString.length() << endl; cout << "zweiterString.capacity() : " << zweiterString.capacity() << endl; cout << "nach shrink_to_fit(): " << endl; zweiterString.shrink_to_fit(); cout << "zweiterString.length() : " << zweiterString.length() << endl; cout << "zweiterString.capacity() : " << zweiterString.capacity() << endl; // Wird vom Compiler akzeptiert, ist aber falsch: //zweiterString = einString; // weil noch kein eigener Zuweisungsoperator existiert (s. Text) }
void anzeigen(std::ostream& os, const MeinString& m) {// Version 2 os << m.c_str(); }
void MeinString::verketten(const MeinString& a, const MeinString& b) { reserve_only(a.len + b.len); // neuen Platz beschaffen strcpy(start, a.c_str()); // Teil 1 kopieren strcpy(start + a.len, b.start); // Teil 2 kopieren len = a.len + b.len; }