Menu
Coddy logo textTech

Verwendung von strlen()

Teil des Abschnitts Logic & Flow der C-Journey von Coddy — Lektion 15 von 63.

Sie haben gelernt, wie man Strings aus Benutzereingaben liest, aber jetzt benötigen Sie eine Möglichkeit, um zu bestimmen, wie lang diese Strings sind. C stellt die Funktion strlen() aus der Bibliothek <string.h> speziell für diesen Zweck zur Verfügung.

Die Funktion strlen() zählt die Anzahl der Zeichen in einem String und stoppt, wenn sie auf den Null-Terminator \0 trifft. Wichtig ist, dass sie den Null-Terminator nicht in ihre Zählung einbezieht – sie zählt nur die tatsächlich sichtbaren Zeichen.

#include <stdio.h>
#include <string.h>

char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length);  // Gibt aus: Length: 5

Um strlen() zu verwenden, müssen Sie den Header <string.h> am Anfang Ihres Programms einbinden. Die Funktion nimmt einen String als Argument entgegen und gibt eine Ganzzahl zurück, die die Anzahl der Zeichen vor dem Null-Terminator darstellt.

Diese Funktion ist besonders nützlich, wenn Sie wissen müssen, wie viel Platz eine Zeichenfolge einnimmt, die Eingabelänge validieren oder Operationen durchführen möchten, die von der Größe der Zeichenfolge abhängen. Es ist eine der am häufigsten verwendeten String-Funktionen in der C-Programmierung.

challenge icon

Aufgabe

Einfach

Schreiben Sie ein C-Programm, das mehrere Wörter aus der Eingabe liest und deren Längen mit der Funktion strlen() analysiert. Ihr Programm sollte:

  1. Einen Ganzzahlwert n einlesen, der die Anzahl der zu verarbeitenden Wörter darstellt
  2. Für jedes der n Wörter:
    • Ein Zeichen-Array mit 50 Elementen deklarieren, um das Wort zu speichern
    • Das Wort mit scanf einlesen
    • strlen() verwenden, um die Länge des Wortes zu berechnen
    • Das Wort und seine Länge im angegebenen Format ausgeben
  3. Nach der Verarbeitung aller Wörter die Gesamtzahl der Zeichen über alle Wörter hinweg berechnen und ausgeben
  4. Die Länge des längsten gefundenen Wortes ermitteln und ausgeben

Denken Sie daran, den Header <string.h> einzubinden, um die Funktion strlen() verwenden zu können.

Ihre Ausgabe sollte die Ergebnisse im folgenden Format anzeigen:

Word: [word] - Length: [length]
Word: [word] - Length: [length]
...
Total characters: [total]
Longest word length: [max_length]

Wenn die Eingabe zum Beispiel wie folgt aussieht:

3
hello
programming
C

Sollte Ihre Ausgabe wie folgt aussehen:

Word: hello - Length: 5
Word: programming - Length: 11
Word: C - Length: 1
Total characters: 17
Longest word length: 11

Diese Herausforderung testet Ihr Verständnis für die Verwendung von strlen() zur Messung von String-Längen, die Verarbeitung mehrerer Strings mit Schleifen und die Durchführung von Berechnungen auf Basis von String-Längendaten.

Spickzettel

Die Funktion strlen() aus <string.h> zählt die Anzahl der Zeichen in einem String, wobei der Null-Terminator \0 ausgeschlossen wird:

#include <stdio.h>
#include <string.h>

char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length);  // Gibt aus: Length: 5

Die Funktion nimmt einen String als Argument entgegen und gibt eine Ganzzahl zurück, welche die Anzahl der sichtbaren Zeichen vor dem Null-Terminator darstellt.

Probier es selbst

#include <stdio.h>
#include <string.h>

int main() {
    // Lies die Anzahl der Wörter
    int n;
    scanf("%d", &n);
    
    // Variablen zur Verfolgung der Gesamtsummen
    int total_characters = 0;
    int max_length = 0;
    
    // TODO: Schreibe deinen Code hier
    // Verarbeite jedes Wort mit einer Schleife
    // Für jedes Wort:
    // - Deklariere ein Zeichen-Array mit 50 Elementen
    // - Lies das Wort mit scanf ein
    // - Berechne die Länge mit strlen()
    // - Gib das Wort und seine Länge aus
    // - Aktualisiere total_characters und max_length
    
    // Gib die Endergebnisse aus
    printf("Total characters: %d\n", total_characters);
    printf("Longest word length: %d\n", max_length);
    
    return 0;
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logic & Flow