5. Übung
Bearbeitung vom 22.11.06 - 27.11.06
Aufgabe 1: Arrays
Welche Ausgabe erwarten Sie bei dem folgenden Programm, wenn bei der ersten Zeile die Ausgabe 0xbfffa600 erscheint ?
  int a[10] = {0,1,2,3,4,5,6,7,8,9}; 
  int *pa;
  pa = &a[0];
  cout << pa      << endl;
  cout << a[4]    << endl;
  cout << &(*pa)  << endl;
  cout << *(pa+8) << endl;
  cout << pa+1    << endl;
  cout << pa[5]   << endl;
  cout << &a[2]   << endl;
  cout << *(7+a)  << endl;
  cout << 3[a]    << endl;
  cout << &3[a]   << endl;
Aufgabe 2: Character- Arrays
Bei Character- Arrays ist das letzte Zeichen immer das Nullzeichen $'\setminus 0'$ , ein Steuerzeichen , das mit dem Code- Wert 0 das erste Zeichen in der Zeichentabelle ist (nicht zu verwechseln mit dem sichtbaren Zeichen $'0'$, das beispielsweise in der ASCI- Tabelle den Code- Wert 48 dezimal hat.
Verwenden Sie für die folgenden Teilaufgaben das Programm strings.cc und ergänzen Sie die fehlenden Zeilen. Benutzen Sie ausschließlich Pointer, wie es für Teil a) im Programm bereits demonstriert ist.
a) Schreiben Sie ein Programm, daß die Länge eines Strings berechnet (ohne Zuhilfenahme von Standardfunktionen).
b) Kopieren Sie den String in einen anderen String.
c) Überprüfen Sie die Strings von Teil a) und Teil b) auf exakte Gleichheit.
d) Konkatenieren Sie die beiden Strings von Teil a) und Teil b) und schreiben Sie das Ergebnis in einen dritten String.
e) Spiegeln Sie den ersten String von Teil a).
Aufgabe 3: Funktionsaufrufe
Schreiben Sie eine Funktion, die die Werte zweier Integer- Variablen vertauscht. Benutzen Sie einmal int* und einmal int$\&$ als Parametertyp.
Aufgabe 4: Arrays als Funktionsargumente (Zusatzaufgabe)
Verändern Sie das Programm von Aufgabe 2 zur Stringbehandlung, nun unter Verwendung von Funktionen für jede einzelne Operation a) bis e). Lesen Sie den String im main-Programm ein und übergeben Sie die Strings als Argumente den Funktionen. Rufen Sie jede Funktion mindestens einmal im Hauptprogarmm auf und schreiben Sie die Ergebnisse aus.



Harm Fesefeldt
2006-11-21