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

Character Frequency

Diese Einsteigerübung trainiert grundlegende Syntax und Problemlösung anhand von Character Frequency.

Was ist Character Frequency?

Diese Einsteigerübung trainiert grundlegende Syntax und Problemlösung anhand von Character Frequency.

Löse Character Frequency mit ausführbarem Code in C und C++.

Wichtige Punkte

  • Aktiviere Compiler-Warnungen und behebe sie vollständig.
  • Kenne Typ und Lebensdauer jedes Werts.
  • Prüfe Eingaben und Array-Grenzen explizit.

Codebeispiele in C und C++

C
Code ausführen →
main.c
#include <stdio.h>
int main(void) {
    const char *text = "banana"; int counts[26] = {0};
    // Convert each lowercase letter to an array index.
    for (; *text; ++text) ++counts[*text - 'a'];
    for (int i = 0; i < 26; ++i) if (counts[i]) printf("%c=%d\n", 'a' + i, counts[i]);
}
Erwartete Ausgabe
a=3
b=1
n=2
C++
Code ausführen →
main.cpp
#include <array>
#include <iostream>
#include <string>
int main() {
    std::string text = "banana"; std::array<int, 26> counts{};
    // Convert each lowercase letter to an array index.
    for (char character : text) ++counts[character - 'a'];
    for (size_t i = 0; i < counts.size(); ++i) if (counts[i]) std::cout << char('a' + i) << '=' << counts[i] << '\n';
}
Erwartete Ausgabe
a=3
b=1
n=2

Vergleich zwischen C und C++

Vergleiche die C- und C++-Implementierung, ändere die Eingaben und teste zusätzliche Randfälle.

C

C stellt kleine prozedurale APIs und Repräsentationsdetails offen dar.

C++

C++ behält das Low-Level-Modell und ergänzt sicherere Bibliothekstypen.

Übungsaufgaben

Führe beide Versionen aus und untersuche die unterschiedlichen Garantien.

  • Füge ungültige und Grenzwerte hinzu.
  • Kompiliere mit -Wall -Wextra -Wpedantic.
  • Teile Deklaration und Implementierung auf.