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;
}