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: 5Um 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.
Aufgabe
EinfachSchreiben Sie ein C-Programm, das mehrere Wörter aus der Eingabe liest und deren Längen mit der Funktion strlen() analysiert. Ihr Programm sollte:
- Einen Ganzzahlwert
neinlesen, der die Anzahl der zu verarbeitenden Wörter darstellt - Für jedes der
nWörter:- Ein Zeichen-Array mit 50 Elementen deklarieren, um das Wort zu speichern
- Das Wort mit
scanfeinlesen strlen()verwenden, um die Länge des Wortes zu berechnen- Das Wort und seine Länge im angegebenen Format ausgeben
- Nach der Verarbeitung aller Wörter die Gesamtzahl der Zeichen über alle Wörter hinweg berechnen und ausgeben
- 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
CSollte Ihre Ausgabe wie folgt aussehen:
Word: hello - Length: 5
Word: programming - Length: 11
Word: C - Length: 1
Total characters: 17
Longest word length: 11Diese 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: 5Die 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;
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logic & Flow
1Zeiger-Grundlagen
Was ist ein Zeiger?Zeiger deklarierenDer Adressoperator (&)Der Dereferenzierungsoperator (*)NULL-ZeigerZusammenfassung: Zeiger-Grundlagen4Projekt: Einfaches Text-Tool
ProjektübersichtZeichen zählen2Pointer und Arrays
Array-Namen als PointerArray-Elemente - PointerPointer-ArithmetikPointer vergleichenWiederholung: Array-Durchlauf mit Pointern5Zeiger und Funktionen
Wertübergabe (Pass-by-Value)Zeiger an Funktionen übergebenVariablen über Zeiger ändernEin klassisches Beispiel: SwapArrays an Funktionen übergebenZusammenfassung: Zeiger als Funktionsargumente8Structs und Zeiger
Zeiger auf StructsDer Pfeiloperator (->)Structs per Wert übergebenÜbergabe von Struct-ZeigernDynamische Allokation von StructsZusammenfassung: Struct ändern - Ptr11Finale Wiederholungsaufgaben
Wiederholung: Dynamische String-KonkatenationWiederholung: Array von StructsWiederholung: Wortfrequenz-Zähler3Character-Arrays und Strings
Strings als char-ArraysDer Null-TerminatorString-Eingabe mit scanfVerwendung von strlen()Verwendung von strcpy()Verwendung von strcat()Verwendung von strcmp()Zusammenfassung: Grundlegende String-Funktionen