C/C++-Übungen für Einsteiger

Einen String in C und C++ umdrehen

In dieser Lektion drehst du einen String direkt in seinem eigenen Speicher um, indem du die symmetrischen Zeichen vertauschst.

Einführung

Einen String umzudrehen ist eine gute Übung für den Umgang mit Indizes und das Vertauschen an Ort und Stelle (in-place), also ohne einen neuen String anzulegen. Die Idee: das erste mit dem letzten Zeichen tauschen und sich zur Mitte vorarbeiten.

Wichtige Punkte

  • Schalte die Compiler-Warnungen (compiler warnings) ein und behebe alle.
  • Verstehe den Datentyp und die Lebensdauer (lifetime) jedes Werts genau.
  • Prüfe immer die Eingabedaten und die Grenzen von Array-Indizes.

Codebeispiele in C und C++

C
Code ausführen →
main.c
#include <stdio.h>
#include <string.h>
int main(void) {
    char text[] = "CodeUtility"; size_t length = strlen(text);
    // Swap mirrored characters in place.
    for (size_t i = 0; i < length / 2; ++i) {
        char temporary = text[i]; text[i] = text[length - 1 - i]; text[length - 1 - i] = temporary;
    }
    puts(text);
}
Ergebnis der Ausführung
ytilitUedoC
C++
Code ausführen →
main.cpp
#include <algorithm>
#include <iostream>
#include <string>
int main() {
    std::string text = "CodeUtility";
    // reverse applies swaps across the selected range.
    std::reverse(text.begin(), text.end());
    std::cout << text << '\n';
}
Ergebnis der Ausführung
ytilitUedoC

C und C++ im Vergleich

Die Schleife tauscht text[i] mit text[length - 1 - i] über die temporäre Variable temporary, bis sich die beiden Positionen in der Mitte treffen. Beachte, dass der String als Array char text[] deklariert sein muss, damit er geändert werden darf. Die Ausgabe lautet ytilitUedoC.

C

C verwendet kleine prozedurale Funktionen und zeigt offen, wie Daten im Speicher dargestellt werden.

C++

C++ erlaubt weiterhin Arbeit auf niedriger Ebene, ergänzt aber Bibliothekstypen und sicherere Abstraktionen.

Übungen zur Vertiefung

Führe beide Versionen aus und ändere dann den Code, um zu beobachten, welche Sicherheit jede Sprache bietet.

  • Teste ungültige Eingaben und Grenzwerte.
  • Kompiliere mit den Flags -Wall -Wextra -Wpedantic, um zusätzliche Warnungen einzuschalten.
  • Lagere gemeinsame Deklarationen in eine Header-Datei und die Implementierung in eine eigene Datei aus.

Mit einer Challenge üben

Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.

Alle Challenges