diff --git a/20230109/hp-20230109.txt b/20230109/hp-20230109.txt index 3d7993e977ead3ac523b8f64882bc22eb21f2774..7f2127e54ae3a8e7a9046a1bb1c082c0dec0ad97 100644 --- a/20230109/hp-20230109.txt +++ b/20230109/hp-20230109.txt @@ -2,6 +2,21 @@ Klausur vom 13.2.2018, gelöst von ChatGPT Aufgabe 1 +(a) Das Programm fügt das Zeichen 'c' an der Stelle 5 in die Zeichenkette 'test' + ein. Allerdings wird das Programm nicht korrekt implementiert, da der Inhalt + der Zeichenkette nach der Stelle 5 nicht korrekt verschoben wird. Die Schleife + 'for (int i = pos; i < len; i++)' sollte stattdessen 'for (int i = len; i > + pos; i--)' lauten, um die Zeichen ab der Stelle 'pos' nach rechts zu + verschieben. + + Da das Programm so implementiert ist, werden alle Zeichen ab der Stelle 5 mit + dem Wert 'h' überschrieben. Da der Inhalt der Zeichenkette nach der Stelle 5 + nicht verschoben wird, wird das Zeichen 'c' an der Stelle 5 eingefügt, während + der Rest der Zeichenkette unverändert bleibt. Deshalb lautet die Ausgabe + "Hochschhhhhhhhhhh". + +--> Viel Geschwafel, aber korrekt. Volle Punktzahl. + (b) void insert_into_string (char src, char *target, int pos) { // Bestimme die Länge des Strings target int len = strlen(target);