Aufgabe: String ausgeben

Erstelle einen String mit dem Text "Hallo Welt!" und gib ihn auf dem Bildschirm aus.

Musterlösung: String ausgeben
#include <stdio.h>

int main(void) {
    char text[] = "Hallo Welt!";
    printf("%s\n", text);
    return 0;
}

Aufgabe: Einzelne Zeichen ausgeben

Erstelle einen String "C Programmierung" und gib jedes Zeichen einzeln untereinander aus.

Musterlösung: Einzelne Zeichen ausgeben
#include <stdio.h>

int main(void) {
    char text[] = "C Programmierung";
    int i = 0;

    while (text[i] != '\0') {
        printf("%c\n", text[i]);
        i++;
    }

    return 0;
}

Aufgabe: Länge eines Strings ermitteln

Erstelle einen String und bestimme die Länge mit einer Schleife (ohne strlen).

Musterlösung: Länge eines Strings ermitteln
#include <stdio.h>

int main(void) {
    char text[] = "Computer";
    int i = 0;

    while (text[i] != '\0') {
        i++;
    }

    printf("Der String hat %d Zeichen.\n", i);
    return 0;
}

Aufgabe: Zeichen zählen (mit strlen)

Verwende strlen() aus <string.h>, um die Länge des Strings "Programmieren" zu bestimmen.

Musterlösung: Zeichen zählen (mit strlen)
#include <stdio.h>
#include <string.h>

int main(void) {
    char wort[] = "Programmieren";
    int laenge = strlen(wort);

    printf("Laenge: %d Zeichen\n", laenge);
    return 0;
}

Aufgabe: Zwei Strings hintereinander ausgeben

Erstelle zwei Strings "Hallo" und "Welt" und gib sie nacheinander aus – mit einem Leerzeichen dazwischen.

Musterlösung: Zwei Strings hintereinander ausgeben
#include <stdio.h>

int main(void) {
    char wort1[] = "Hallo";
    char wort2[] = "Welt";

    printf("%s %s\n", wort1, wort2);
    return 0;
}

Aufgabe: Zwei Strings vergleichen

Vergleiche zwei Strings mit strcmp(). Wenn sie gleich sind, gib "Gleich!" aus, sonst "Ungleich!".

Musterlösung: Zwei Strings vergleichen
#include <stdio.h>
#include <string.h>

int main(void) {
    char s1[] = "Apfel";
    char s2[] = "Apfel";

    if (strcmp(s1, s2) == 0)
        printf("Gleich!\n");
    else
        printf("Ungleich!\n");

    return 0;
}

Aufgabe: String kopieren

Kopiere mit strcpy() den Inhalt eines Strings in einen anderen und gib den neuen String aus.

Musterlösung: String kopieren
#include <stdio.h>
#include <string.h>

int main(void) {
    char quelle[] = "Banane";
    char ziel[20];

    strcpy(ziel, quelle);
    printf("Ziel: %s\n", ziel);

    return 0;
}

Aufgabe: Zwei Strings verketten

Erstelle Dir zwei Strings mit beliebigem Inhalt. Füge diese zwei Strings mit strcat() zusammen.

Musterlösung: Zwei Strings verketten
#include <stdio.h>
#include <string.h>

int main(void) {
    char s1[30] = "Hallo ";
    char s2[] = "C-Welt!";

    strcat(s1, s2);
    printf("%s\n", s1);

    return 0;
}

Aufgabe: Zeichen zählen (Buchstaben ‚a‘)

Erstelle einen String und zähle, wie oft der Buchstabe 'a' (oder 'A') vorkommt.

Musterlösung: Zeichen zählen (Buchstaben ‚a‘)
#include <stdio.h>

int main(void) {
    char text[] = "Programmieren macht Spass";
    int count = 0;
    int i = 0;

    while (text[i] != '\0') {
        if (text[i] == 'a' || text[i] == 'A') {
            count++;
        }
        i++;
    }

    printf("Der Buchstabe 'a' kommt %d-mal vor.\n", count);
    return 0;
}

Aufgabe: String umkehren

Erstelle ein Programm, das einen String in umkehrter Reihenfolge ausgibt (z. B. "Hallo""ollaH").
Du darfst dafür strlen() verwenden.

Musterlösung: String umkehren
#include <stdio.h>
#include <string.h>

int main(void) {
    char text[] = "Hallo";
    int len = strlen(text);

    printf("Urspruenglich: %s\n", text);
    printf("Umgekehrt: ");

    for (int i = len - 1; i >= 0; i--) {
        printf("%c", text[i]);
    }

    printf("\n");
    return 0;
}

Aufgabe: Prüfen, ob ein String ein Palindrom ist

Schreibe ein Programm, das prüft, ob ein eingegebener String ein Palindrom ist (z. B. „otto“, „anna“, „lagerregal“).
Beachte: Groß- und Kleinschreibung sollen unterschieden werden dürfen (also „Otto“ ≠ „otto“).

Musterlösung: Prüfen, ob ein String ein Palindrom ist
#include <stdio.h>
#include <string.h>

int main(void) {
    char text[100];
    printf("Gib ein Wort ein: ");
    scanf("%99s", text);

    int len = strlen(text);
    int istPalindrom = 1;

    for (int i = 0; i < len / 2; i++) {
        if (text[i] != text[len - 1 - i]) {
            istPalindrom = 0;
            break;
        }
    }

    if (istPalindrom)
        printf("'%s' ist ein Palindrom.\n", text);
    else
        printf("'%s' ist kein Palindrom.\n", text);

    return 0;
}

Aufgabe: Kleinbuchstaben in Großbuchstaben umwandeln

Schreibe ein Programm, das einen String einliest und alle Kleinbuchstaben in Großbuchstaben umwandelt (nur ASCII-Buchstaben a–z).

Musterlösung: Kleinbuchstaben in Großbuchstaben umwandeln
#include <stdio.h>

int main(void) {
    char text[100];
    printf("Gib einen Text ein: ");
    scanf("%99s", text);

    int i = 0;
    while (text[i] != '\0') {
        if (text[i] >= 'a' && text[i] <= 'z') {
            text[i] = text[i] - ('a' - 'A');
        }
        i++;
    }

    printf("In Grossbuchstaben: %s\n", text);
    return 0;
}

Aufgabe: Wörter zählen

Schreibe ein Programm, das in einem eingegebenen Satz (z. B. "C macht richtig Spass") die Anzahl der Wörter zählt.
Hinweis: Wörter sind durch Leerzeichen getrennt.

Musterlösung: Wörter zählen
#include <stdio.h>

int main(void) {
    char text[200];
    printf("Gib einen Satz ein: ");
    fgets(text, sizeof(text), stdin);  // erlaubt Leerzeichen

    int i = 0, woerter = 0, imWort = 0;

    while (text[i] != '\0') {
        if (text[i] == ' ' || text[i] == '\n' || text[i] == '\t') {
            imWort = 0;
        } else if (!imWort) {
            imWort = 1;
            woerter++;
        }
        i++;
    }

    printf("Der Satz enthaelt %d Wort/Woerter.\n", woerter);
    return 0;
}

Aufgabe: Häufigstes Zeichen finden

Schreibe ein Programm, das das am häufigsten vorkommende Zeichen in einem String findet und ausgibt (ohne Groß-/Kleinschreibung zu unterscheiden).

Musterlösung: Häufigstes Zeichen finden
#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main(void) {
    char text[200];
    printf("Gib einen Text ein: ");
    fgets(text, sizeof(text), stdin);

    int haeufigkeit[256] = {0};
    int i = 0;
    while (text[i] != '\0') {
        unsigned char c = tolower(text[i]);
        if (c != ' ' && c != '\n' && c != '\t')
            haeufigkeit[c]++;
        i++;
    }

    int max = 0;
    char zeichen = '\0';
    for (int j = 0; j < 256; j++) {
        if (haeufigkeit[j] > max) {
            max = haeufigkeit[j];
            zeichen = j;
        }
    }

    printf("Das haeufigste Zeichen ist '%c' (kommt %d-mal vor)\n", zeichen, max);
    return 0;
}

Nach oben scrollen